
! KGEN-generated Fortran source file
!
! Filename    : mo_nln_matrix.F90
! Generated at: 2015-05-13 11:02:21
! KGEN version: 0.4.10



    MODULE mo_nln_matrix
        USE kgen_utils_mod, ONLY : kgen_dp, check_t, kgen_init_check, kgen_print_check
        USE shr_kind_mod, ONLY: r8 => shr_kind_r8
        PRIVATE
        PUBLIC nlnmat
        CONTAINS

        ! write subroutines
        ! No subroutines
        ! No module extern variables

        SUBROUTINE nlnmat01(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(1016) = -(rxt(119)*y(2) + rxt(137)*y(157) + rxt(164)*y(19) + rxt(169)                       *y(129) + rxt(177)*y(&
            130) + rxt(192)*y(6) + rxt(195)*y(7)                       + rxt(207)*y(127) + rxt(234)*y(128) + rxt(293)*y(37) + rxt(&
            314)                       *y(48) + rxt(336)*y(60) + rxt(342)*y(61) + rxt(360)*y(65)                       + rxt(392)&
            *y(77) + rxt(405)*y(107) + rxt(408)*y(108))
            mat(945) = -rxt(119)*y(1)
            mat(971) = -rxt(137)*y(1)
            mat(1167) = -rxt(164)*y(1)
            mat(1381) = -rxt(169)*y(1)
            mat(1112) = -rxt(177)*y(1)
            mat(1246) = -rxt(192)*y(1)
            mat(1283) = -rxt(195)*y(1)
            mat(1147) = -rxt(207)*y(1)
            mat(843) = -rxt(234)*y(1)
            mat(237) = -rxt(293)*y(1)
            mat(594) = -rxt(314)*y(1)
            mat(745) = -rxt(336)*y(1)
            mat(642) = -rxt(342)*y(1)
            mat(503) = -rxt(360)*y(1)
            mat(307) = -rxt(392)*y(1)
            mat(383) = -rxt(405)*y(1)
            mat(809) = -rxt(408)*y(1)
            mat(1016) = mat(1016) + .100_r8*rxt(360)*y(65) + .200_r8*rxt(336)*y(60)                       + .200_r8*rxt(342)*y(61)
            mat(945) = mat(945) + rxt(118)*y(3)
            mat(906) = rxt(118)*y(2)
            mat(1112) = mat(1112) + .250_r8*rxt(304)*y(133) + .250_r8*rxt(352)*y(141)
            mat(503) = mat(503) + .100_r8*rxt(360)*y(1)
            mat(792) = .250_r8*rxt(304)*y(130)
            mat(745) = mat(745) + .200_r8*rxt(336)*y(1)
            mat(642) = mat(642) + .200_r8*rxt(342)*y(1)
            mat(764) = .250_r8*rxt(352)*y(130)
            mat(943) = -(rxt(118)*y(3) + rxt(119)*y(1) + 4._r8*rxt(120)*y(2) + rxt(168)                       *y(129) + rxt(175)&
            *y(18) + rxt(176)*y(130) + rxt(179)*y(20)                       + rxt(190)*y(6) + (rxt(193) + rxt(194)) * y(7) + rxt(&
            201)*y(8)                       + rxt(214)*y(24) + rxt(227)*y(27) + rxt(228)*y(28) + rxt(231)                       &
            *y(29) + rxt(237)*y(31) + rxt(247)*y(32) + rxt(248)*y(33)                       + rxt(249)*y(34) + rxt(271)*y(16) + &
            rxt(401)*y(106) + (rxt(437)                       + rxt(438)) * y(148) + rxt(444)*y(150))
            mat(904) = -rxt(118)*y(2)
            mat(1014) = -rxt(119)*y(2)
            mat(1379) = -rxt(168)*y(2)
            mat(653) = -rxt(175)*y(2)
            mat(1110) = -rxt(176)*y(2)
            mat(314) = -rxt(179)*y(2)
            mat(1244) = -rxt(190)*y(2)
            mat(1281) = -(rxt(193) + rxt(194)) * y(2)
            mat(1423) = -rxt(201)*y(2)
            mat(1041) = -rxt(214)*y(2)
            mat(826) = -rxt(227)*y(2)
            mat(488) = -rxt(228)*y(2)
            mat(562) = -rxt(231)*y(2)
            mat(1189) = -rxt(237)*y(2)
            mat(454) = -rxt(247)*y(2)
            mat(400) = -rxt(248)*y(2)
            mat(283) = -rxt(249)*y(2)
            mat(1495) = -rxt(271)*y(2)
            mat(147) = -rxt(401)*y(2)
            mat(351) = -(rxt(437) + rxt(438)) * y(2)
            mat(207) = -rxt(444)*y(2)
            mat(969) = (rxt(132)+rxt(133))*y(3)
            mat(904) = mat(904) + (rxt(132)+rxt(133))*y(157) + rxt(185)*y(5) + rxt(443)                       *y(150) + rxt(435)&
            *y(151) + rxt(404)*y(107) + rxt(407)*y(108)
            mat(479) = rxt(185)*y(3) + rxt(186)*y(6) + rxt(187)*y(7) + rxt(440)*y(149)
            mat(1244) = mat(1244) + rxt(186)*y(5)
            mat(1281) = mat(1281) + rxt(187)*y(5)
            mat(1379) = mat(1379) + 2.000_r8*rxt(171)*y(129)
            mat(1165) = rxt(167)*y(130)
            mat(1110) = mat(1110) + rxt(167)*y(19)
            mat(410) = rxt(440)*y(5) + 1.150_r8*rxt(448)*y(153)
            mat(207) = mat(207) + rxt(443)*y(3)
            mat(302) = rxt(435)*y(3)
            mat(418) = rxt(447)*y(153)
            mat(429) = 1.150_r8*rxt(448)*y(149) + rxt(447)*y(152)
            mat(382) = rxt(404)*y(3)
            mat(808) = rxt(407)*y(3)
            mat(970) = -((rxt(132) + rxt(133)) * y(3) + rxt(134)*y(158) + rxt(137)*y(1)                       + rxt(154)*y(100) + &
            rxt(155)*y(101) + rxt(159)*y(18) + rxt(160)                       *y(27) + rxt(161)*y(32) + rxt(162)*y(35))
            mat(905) = -(rxt(132) + rxt(133)) * y(157)
            mat(1472) = -rxt(134)*y(157)
            mat(1015) = -rxt(137)*y(157)
            mat(46) = -rxt(154)*y(157)
            mat(67) = -rxt(155)*y(157)
            mat(654) = -rxt(159)*y(157)
            mat(827) = -rxt(160)*y(157)
            mat(455) = -rxt(161)*y(157)
            mat(58) = -rxt(162)*y(157)
            mat(905) = mat(905) + rxt(182)*y(154)
            mat(411) = .850_r8*rxt(448)*y(153)
            mat(225) = rxt(182)*y(3)
            mat(430) = .850_r8*rxt(448)*y(149)
            mat(903) = -(rxt(118)*y(2) + rxt(128)*y(156) + rxt(132)*y(157) + rxt(163)                       *y(19) + rxt(182)*y(&
            154) + rxt(185)*y(5) + rxt(291)*y(135)                       + rxt(404)*y(107) + rxt(407)*y(108) + rxt(435)*y(151) + (&
            rxt(442)                       + rxt(443)) * y(150) + rxt(445)*y(148))
            mat(942) = -rxt(118)*y(3)
            mat(51) = -rxt(128)*y(3)
            mat(968) = -rxt(132)*y(3)
            mat(1164) = -rxt(163)*y(3)
            mat(224) = -rxt(182)*y(3)
            mat(478) = -rxt(185)*y(3)
            mat(191) = -rxt(291)*y(3)
            mat(381) = -rxt(404)*y(3)
            mat(807) = -rxt(407)*y(3)
            mat(301) = -rxt(435)*y(3)
            mat(206) = -(rxt(442) + rxt(443)) * y(3)
            mat(350) = -rxt(445)*y(3)
            mat(1013) = 2.000_r8*rxt(119)*y(2) + 2.000_r8*rxt(137)*y(157) + rxt(192)*y(6)                       + rxt(195)*y(7) + &
            rxt(169)*y(129) + rxt(164)*y(19)                       + 2.000_r8*rxt(177)*y(130) + rxt(207)*y(127) + rxt(234)*y(128) &
                                  + rxt(405)*y(107) + rxt(408)*y(108)
            mat(942) = mat(942) + 2.000_r8*rxt(119)*y(1) + 2.000_r8*rxt(120)*y(2)                       + rxt(127)*y(156) + rxt(&
            193)*y(7) + rxt(168)*y(129) + rxt(201)                       *y(8) + rxt(176)*y(130) + rxt(214)*y(24) + rxt(237)*y(31)
            mat(968) = mat(968) + 2.000_r8*rxt(137)*y(1)
            mat(903) = mat(903) + 2.000_r8*rxt(128)*y(156)
            mat(51) = mat(51) + rxt(127)*y(2) + 2.000_r8*rxt(128)*y(3)
            mat(478) = mat(478) + rxt(189)*y(7)
            mat(1243) = rxt(192)*y(1) + rxt(441)*y(149)
            mat(1280) = rxt(195)*y(1) + rxt(193)*y(2) + rxt(189)*y(5)
            mat(1378) = rxt(169)*y(1) + rxt(168)*y(2) + rxt(205)*y(10) + rxt(170)*y(130)                       + rxt(216)*y(24)
            mat(1422) = rxt(201)*y(2) + rxt(203)*y(130)
            mat(216) = rxt(205)*y(129)
            mat(873) = rxt(274)*y(130)
            mat(1164) = mat(1164) + rxt(164)*y(1) + rxt(166)*y(130)
            mat(1109) = 2.000_r8*rxt(177)*y(1) + rxt(176)*y(2) + rxt(170)*y(129)                       + rxt(203)*y(8) + rxt(274)&
            *y(13) + rxt(166)*y(19)                       + 2.000_r8*rxt(178)*y(130) + rxt(210)*y(127) + rxt(217)*y(24)           &
                        + rxt(235)*y(128) + rxt(239)*y(31) + rxt(322)*y(137)                       + .750_r8*rxt(352)*y(141) + &
            rxt(296)*y(132) + rxt(317)*y(136)                       + rxt(326)*y(138)
            mat(1144) = rxt(207)*y(1) + rxt(210)*y(130)
            mat(1040) = rxt(214)*y(2) + rxt(216)*y(129) + rxt(217)*y(130) + (+ 2.000_r8*rxt(221)+2.000_r8*rxt(222))*y(24) + (rxt(&
            243)                        +rxt(244))*y(31)
            mat(840) = rxt(234)*y(1) + rxt(235)*y(130)
            mat(1188) = rxt(237)*y(2) + rxt(239)*y(130) + (rxt(243)+rxt(244))*y(24)                       + 2.000_r8*rxt(245)*y(&
            31)
            mat(409) = rxt(441)*y(6)
            mat(445) = rxt(322)*y(130)
            mat(763) = .750_r8*rxt(352)*y(130)
            mat(465) = rxt(296)*y(130)
            mat(522) = rxt(317)*y(130)
            mat(629) = rxt(326)*y(130)
            mat(381) = mat(381) + rxt(405)*y(1)
            mat(807) = mat(807) + rxt(408)*y(1)
            mat(53) = -(rxt(121)*y(2) + rxt(122)*y(3) + rxt(124)*y(1))
            mat(918) = -rxt(121)*y(155)
            mat(887) = -rxt(122)*y(155)
            mat(985) = -rxt(124)*y(155)
            mat(959) = rxt(132)*y(3)
            mat(887) = mat(887) + rxt(132)*y(157)
            mat(50) = -(rxt(127)*y(2) + rxt(128)*y(3))
            mat(917) = -rxt(127)*y(156)
            mat(886) = -rxt(128)*y(156)
            mat(984) = rxt(124)*y(155)
            mat(917) = mat(917) + rxt(121)*y(155)
            mat(886) = mat(886) + rxt(122)*y(155)
            mat(52) = rxt(124)*y(1) + rxt(121)*y(2) + rxt(122)*y(3)
            mat(650) = -(rxt(159)*y(157) + rxt(173)*y(129) + rxt(175)*y(2) + rxt(208)                       *y(127) + rxt(251)*y(&
            103))
            mat(964) = -rxt(159)*y(18)
            mat(1366) = -rxt(173)*y(18)
            mat(937) = -rxt(175)*y(18)
            mat(1139) = -rxt(208)*y(18)
            mat(434) = -rxt(251)*y(18)
            mat(1160) = rxt(166)*y(130)
            mat(1098) = rxt(166)*y(19)
            mat(602) = -((rxt(267) + rxt(268)) * y(129))
            mat(1361) = -(rxt(267) + rxt(268)) * y(17)
            mat(998) = .560_r8*rxt(314)*y(48) + .300_r8*rxt(360)*y(65) + .500_r8*rxt(293)                       *y(37) + &
            .050_r8*rxt(336)*y(60) + .200_r8*rxt(342)*y(61)
            mat(936) = rxt(271)*y(16) + rxt(401)*y(106)
            mat(1229) = .220_r8*rxt(343)*y(142) + .500_r8*rxt(378)*y(145)
            mat(1361) = mat(1361) + rxt(270)*y(16) + rxt(309)*y(44) + rxt(330)*y(54)                       + .350_r8*rxt(286)*y(&
            98) + rxt(402)*y(106)
            mat(1407) = rxt(269)*y(16) + .220_r8*rxt(345)*y(142) + rxt(331)*y(54)                       + .500_r8*rxt(379)*y(145)
            mat(860) = .110_r8*rxt(347)*y(142) + .200_r8*rxt(381)*y(145)
            mat(1489) = rxt(271)*y(2) + rxt(270)*y(129) + rxt(269)*y(8) + rxt(212)*y(127)                       + rxt(236)*y(128)
            mat(1137) = rxt(212)*y(16)
            mat(838) = rxt(236)*y(16)
            mat(588) = .560_r8*rxt(314)*y(1)
            mat(497) = .300_r8*rxt(360)*y(1)
            mat(780) = .220_r8*rxt(348)*y(142) + .500_r8*rxt(382)*y(145)
            mat(236) = .500_r8*rxt(293)*y(1)
            mat(376) = rxt(309)*y(129)
            mat(735) = .050_r8*rxt(336)*y(1)
            mat(636) = .200_r8*rxt(342)*y(1)
            mat(717) = .220_r8*rxt(343)*y(6) + .220_r8*rxt(345)*y(8) + .110_r8*rxt(347)                       *y(13) + &
            .220_r8*rxt(348)*y(133)
            mat(661) = rxt(330)*y(129) + rxt(331)*y(8)
            mat(674) = .500_r8*rxt(378)*y(6) + .500_r8*rxt(379)*y(8) + .200_r8*rxt(381)                       *y(13) + &
            .500_r8*rxt(382)*y(133)
            mat(93) = .350_r8*rxt(286)*y(129)
            mat(145) = rxt(401)*y(2) + rxt(402)*y(129)
            mat(476) = -(rxt(184)*y(129) + rxt(185)*y(3) + rxt(186)*y(6) + (rxt(187)                       + rxt(188) + rxt(189)) &
            * y(7) + rxt(440)*y(149))
            mat(1350) = -rxt(184)*y(5)
            mat(897) = -rxt(185)*y(5)
            mat(1223) = -rxt(186)*y(5)
            mat(1268) = -(rxt(187) + rxt(188) + rxt(189)) * y(5)
            mat(408) = -rxt(440)*y(5)
            mat(932) = rxt(444)*y(150) + rxt(183)*y(154)
            mat(897) = mat(897) + rxt(442)*y(150)
            mat(348) = 1.100_r8*rxt(449)*y(153)
            mat(205) = rxt(444)*y(2) + rxt(442)*y(3)
            mat(416) = .200_r8*rxt(447)*y(153)
            mat(223) = rxt(183)*y(2)
            mat(426) = 1.100_r8*rxt(449)*y(148) + .200_r8*rxt(447)*y(152)
        END SUBROUTINE nlnmat01

        SUBROUTINE nlnmat02(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(1252) = -(rxt(186)*y(5) + rxt(190)*y(2) + rxt(191)*y(130) + rxt(192)*y(1)                       + rxt(200)*y(8) + &
            rxt(219)*y(24) + rxt(240)*y(31) + rxt(273)                       *y(13) + rxt(281)*y(131) + rxt(289)*y(134) + rxt(295)&
            *y(132)                       + rxt(302)*y(133) + rxt(316)*y(136) + rxt(321)*y(137) + rxt(325)                       &
            *y(138) + rxt(334)*y(139) + rxt(338)*y(140) + (rxt(343) + rxt(344)                       ) * y(142) + rxt(350)*y(141) &
            + rxt(362)*y(144) + rxt(368)*y(69)                       + rxt(375)*y(143) + rxt(378)*y(145) + rxt(386)*y(146) + rxt(&
            394)                       *y(147) + rxt(441)*y(149))
            mat(482) = -rxt(186)*y(6)
            mat(951) = -rxt(190)*y(6)
            mat(1118) = -rxt(191)*y(6)
            mat(1022) = -rxt(192)*y(6)
            mat(1431) = -rxt(200)*y(6)
            mat(1049) = -rxt(219)*y(6)
            mat(1197) = -rxt(240)*y(6)
            mat(879) = -rxt(273)*y(6)
            mat(181) = -rxt(281)*y(6)
            mat(392) = -rxt(289)*y(6)
            mat(467) = -rxt(295)*y(6)
            mat(795) = -rxt(302)*y(6)
            mat(524) = -rxt(316)*y(6)
            mat(447) = -rxt(321)*y(6)
            mat(631) = -rxt(325)*y(6)
            mat(112) = -rxt(334)*y(6)
            mat(339) = -rxt(338)*y(6)
            mat(727) = -(rxt(343) + rxt(344)) * y(6)
            mat(767) = -rxt(350)*y(6)
            mat(706) = -rxt(362)*y(6)
            mat(578) = -rxt(368)*y(6)
            mat(365) = -rxt(375)*y(6)
            mat(682) = -rxt(378)*y(6)
            mat(251) = -rxt(386)*y(6)
            mat(547) = -rxt(394)*y(6)
            mat(412) = -rxt(441)*y(6)
            mat(951) = mat(951) + rxt(193)*y(7)
            mat(912) = rxt(185)*y(5) + rxt(182)*y(154)
            mat(482) = mat(482) + rxt(185)*y(3) + 2.000_r8*rxt(188)*y(7) + rxt(184)                       *y(129)
            mat(1289) = rxt(193)*y(2) + 2.000_r8*rxt(188)*y(5) + rxt(409)*y(108)
            mat(1387) = rxt(184)*y(5)
            mat(226) = rxt(182)*y(3)
            mat(815) = rxt(409)*y(7)
            mat(1290) = -((rxt(187) + rxt(188) + rxt(189)) * y(5) + (rxt(193) + rxt(194)                       ) * y(2) + rxt(195)&
            *y(1) + rxt(196)*y(8) + rxt(198)*y(129)                       + rxt(204)*y(130) + rxt(220)*y(24) + rxt(241)*y(31) + &
            rxt(303)                       *y(133) + rxt(356)*y(141) + rxt(390)*y(76) + rxt(409)*y(108))
            mat(483) = -(rxt(187) + rxt(188) + rxt(189)) * y(7)
            mat(952) = -(rxt(193) + rxt(194)) * y(7)
            mat(1023) = -rxt(195)*y(7)
            mat(1432) = -rxt(196)*y(7)
            mat(1388) = -rxt(198)*y(7)
            mat(1119) = -rxt(204)*y(7)
            mat(1050) = -rxt(220)*y(7)
            mat(1198) = -rxt(241)*y(7)
            mat(796) = -rxt(303)*y(7)
            mat(768) = -rxt(356)*y(7)
            mat(64) = -rxt(390)*y(7)
            mat(816) = -rxt(409)*y(7)
            mat(1023) = mat(1023) + rxt(192)*y(6)
            mat(952) = mat(952) + rxt(190)*y(6) + rxt(201)*y(8)
            mat(1253) = rxt(192)*y(1) + rxt(190)*y(2) + 2.000_r8*rxt(200)*y(8) + rxt(273)                       *y(13) + rxt(191)&
            *y(130) + rxt(219)*y(24) + rxt(240)*y(31)                       + rxt(321)*y(137) + rxt(302)*y(133) + rxt(334)*y(139) &
                                  + .900_r8*rxt(375)*y(143) + rxt(338)*y(140) + .900_r8*rxt(386)                       *y(146) + &
            rxt(394)*y(147) + .920_r8*rxt(362)*y(144) + rxt(343)                       *y(142) + rxt(350)*y(141) + rxt(295)*y(132)&
             + rxt(316)*y(136)                       + rxt(289)*y(134) + rxt(325)*y(138) + 1.206_r8*rxt(368)*y(69)                &
                   + rxt(378)*y(145) + rxt(281)*y(131)
            mat(1290) = mat(1290) + .700_r8*rxt(390)*y(76)
            mat(1388) = mat(1388) + rxt(202)*y(8) + rxt(205)*y(10) + rxt(332)*y(64)                       + .400_r8*rxt(372)*y(70)
            mat(1432) = mat(1432) + rxt(201)*y(2) + 2.000_r8*rxt(200)*y(6) + rxt(202)                       *y(129) + rxt(203)*y(&
            130) + rxt(363)*y(144) + rxt(345)*y(142)                       + rxt(351)*y(141) + rxt(393)*y(77) + 1.206_r8*rxt(369)&
            *y(69)                       + rxt(373)*y(70) + rxt(379)*y(145)
            mat(218) = rxt(205)*y(129)
            mat(880) = rxt(273)*y(6)
            mat(1119) = mat(1119) + rxt(191)*y(6) + rxt(203)*y(8) + .206_r8*rxt(370)                       *y(69)
            mat(1050) = mat(1050) + rxt(219)*y(6)
            mat(1198) = mat(1198) + rxt(240)*y(6)
            mat(448) = rxt(321)*y(6)
            mat(796) = mat(796) + rxt(302)*y(6)
            mat(152) = rxt(332)*y(129)
            mat(113) = rxt(334)*y(6)
            mat(366) = .900_r8*rxt(375)*y(6)
            mat(340) = rxt(338)*y(6)
            mat(252) = .900_r8*rxt(386)*y(6)
            mat(64) = mat(64) + .700_r8*rxt(390)*y(7)
            mat(548) = rxt(394)*y(6)
            mat(707) = .920_r8*rxt(362)*y(6) + rxt(363)*y(8)
            mat(728) = rxt(343)*y(6) + rxt(345)*y(8)
            mat(768) = mat(768) + rxt(350)*y(6) + rxt(351)*y(8)
            mat(468) = rxt(295)*y(6)
            mat(309) = rxt(393)*y(8)
            mat(525) = rxt(316)*y(6)
            mat(393) = rxt(289)*y(6)
            mat(632) = rxt(325)*y(6)
            mat(579) = 1.206_r8*rxt(368)*y(6) + 1.206_r8*rxt(369)*y(8) + .206_r8*rxt(370)                       *y(130)
            mat(534) = .400_r8*rxt(372)*y(129) + rxt(373)*y(8)
            mat(683) = rxt(378)*y(6) + rxt(379)*y(8)
            mat(182) = rxt(281)*y(6)
            mat(1389) = -(rxt(168)*y(2) + rxt(169)*y(1) + rxt(170)*y(130) + (4._r8*rxt(171)                       + 4._r8*rxt(172)&
            ) * y(129) + rxt(173)*y(18) + rxt(174)*y(20)                       + rxt(180)*y(35) + rxt(181)*y(36) + rxt(184)*y(5) &
            + rxt(198)                       *y(7) + rxt(199)*y(9) + rxt(202)*y(8) + rxt(205)*y(10) + (rxt(215)                   &
                + rxt(216)) * y(24) + rxt(226)*y(27) + rxt(230)*y(28) + rxt(232)                       *y(29) + rxt(238)*y(31) + &
            rxt(246)*y(32) + (rxt(267) + rxt(268)                       ) * y(17) + rxt(270)*y(16) + rxt(277)*y(15) + rxt(278)*y(&
            14)                       + rxt(279)*y(99) + rxt(286)*y(98) + rxt(287)*y(38) + rxt(288)                       *y(37) &
            + rxt(294)*y(40) + rxt(299)*y(39) + rxt(300)*y(41)                       + rxt(307)*y(45) + rxt(308)*y(43) + rxt(309)&
            *y(44) + rxt(310)                       *y(42) + rxt(312)*y(47) + rxt(313)*y(48) + rxt(319)*y(50)                     &
              + rxt(320)*y(49) + rxt(323)*y(52) + rxt(324)*y(51) + rxt(328)                       *y(55) + rxt(329)*y(53) + rxt(&
            330)*y(54) + rxt(332)*y(64)                       + rxt(333)*y(56) + rxt(335)*y(60) + rxt(337)*y(58) + rxt(340)       &
                            *y(59) + rxt(341)*y(61) + rxt(349)*y(62) + rxt(358)*y(63)                       + rxt(359)*y(65) + &
            rxt(365)*y(72) + rxt(371)*y(57) + rxt(372)                       *y(70) + rxt(374)*y(68) + rxt(377)*y(66) + rxt(383)&
            *y(71)                       + rxt(385)*y(73) + rxt(388)*y(75) + rxt(389)*y(74) + rxt(391)                       *y(&
            77) + rxt(396)*y(78) + rxt(402)*y(106) + rxt(403)*y(107)                       + rxt(406)*y(108) + rxt(413)*y(104) + (&
            rxt(415) + rxt(416)                       ) * y(105))
            mat(953) = -rxt(168)*y(129)
            mat(1024) = -rxt(169)*y(129)
            mat(1120) = -rxt(170)*y(129)
            mat(657) = -rxt(173)*y(129)
            mat(317) = -rxt(174)*y(129)
            mat(60) = -rxt(180)*y(129)
            mat(19) = -rxt(181)*y(129)
            mat(484) = -rxt(184)*y(129)
            mat(1291) = -rxt(198)*y(129)
            mat(1455) = -rxt(199)*y(129)
            mat(1433) = -rxt(202)*y(129)
            mat(219) = -rxt(205)*y(129)
            mat(1051) = -(rxt(215) + rxt(216)) * y(129)
            mat(833) = -rxt(226)*y(129)
            mat(491) = -rxt(230)*y(129)
            mat(566) = -rxt(232)*y(129)
            mat(1199) = -rxt(238)*y(129)
            mat(457) = -rxt(246)*y(129)
            mat(605) = -(rxt(267) + rxt(268)) * y(129)
            mat(1505) = -rxt(270)*y(129)
            mat(270) = -rxt(277)*y(129)
            mat(157) = -rxt(278)*y(129)
            mat(243) = -rxt(279)*y(129)
            mat(95) = -rxt(286)*y(129)
            mat(88) = -rxt(287)*y(129)
            mat(239) = -rxt(288)*y(129)
            mat(321) = -rxt(294)*y(129)
            mat(129) = -rxt(299)*y(129)
            mat(612) = -rxt(300)*y(129)
            mat(230) = -rxt(307)*y(129)
            mat(513) = -rxt(308)*y(129)
            mat(378) = -rxt(309)*y(129)
            mat(78) = -rxt(310)*y(129)
            mat(198) = -rxt(312)*y(129)
            mat(598) = -rxt(313)*y(129)
            mat(170) = -rxt(319)*y(129)
            mat(31) = -rxt(320)*y(129)
            mat(265) = -rxt(323)*y(129)
            mat(373) = -rxt(324)*y(129)
            mat(175) = -rxt(328)*y(129)
            mat(620) = -rxt(329)*y(129)
            mat(666) = -rxt(330)*y(129)
            mat(153) = -rxt(332)*y(129)
            mat(28) = -rxt(333)*y(129)
            mat(750) = -rxt(335)*y(129)
            mat(188) = -rxt(337)*y(129)
            mat(119) = -rxt(340)*y(129)
            mat(645) = -rxt(341)*y(129)
            mat(124) = -rxt(349)*y(129)
            mat(293) = -rxt(358)*y(129)
            mat(505) = -rxt(359)*y(129)
            mat(278) = -rxt(365)*y(129)
            mat(25) = -rxt(371)*y(129)
            mat(535) = -rxt(372)*y(129)
            mat(141) = -rxt(374)*y(129)
            mat(332) = -rxt(377)*y(129)
            mat(132) = -rxt(383)*y(129)
            mat(37) = -rxt(385)*y(129)
            mat(165) = -rxt(388)*y(129)
            mat(40) = -rxt(389)*y(129)
            mat(310) = -rxt(391)*y(129)
            mat(214) = -rxt(396)*y(129)
            mat(149) = -rxt(402)*y(129)
            mat(385) = -rxt(403)*y(129)
            mat(817) = -rxt(406)*y(129)
            mat(556) = -rxt(413)*y(129)
            mat(99) = -(rxt(415) + rxt(416)) * y(129)
            mat(1024) = mat(1024) + rxt(164)*y(19) + rxt(177)*y(130) + .330_r8*rxt(314)                       *y(48) + &
            .270_r8*rxt(360)*y(65) + .120_r8*rxt(293)*y(37)                       + .080_r8*rxt(336)*y(60) + .215_r8*rxt(342)*y(&
            61)                       + .700_r8*rxt(392)*y(77)
            mat(953) = mat(953) + rxt(175)*y(18) + rxt(271)*y(16) + rxt(176)*y(130)                       + rxt(179)*y(20) + rxt(&
            227)*y(27) + rxt(228)*y(28) + rxt(247)                       *y(32) + rxt(248)*y(33)
            mat(979) = rxt(159)*y(18) + rxt(162)*y(35) + 2.000_r8*rxt(134)*y(158)                       + rxt(160)*y(27) + rxt(&
            161)*y(32)
            mat(657) = mat(657) + rxt(175)*y(2) + rxt(159)*y(157)
            mat(1254) = rxt(191)*y(130)
            mat(1389) = mat(1389) + .300_r8*rxt(278)*y(14) + .500_r8*rxt(323)*y(52)                       + .100_r8*rxt(349)*y(62)&
             + .500_r8*rxt(299)*y(39)                       + .650_r8*rxt(286)*y(98)
            mat(1433) = mat(1433) + rxt(203)*y(130)
            mat(157) = mat(157) + .300_r8*rxt(278)*y(129)
            mat(60) = mat(60) + rxt(162)*y(157)
            mat(1505) = mat(1505) + rxt(271)*y(2)
            mat(1175) = rxt(164)*y(1) + 2.000_r8*rxt(165)*y(130)
            mat(1120) = mat(1120) + rxt(177)*y(1) + rxt(176)*y(2) + rxt(191)*y(6)                       + rxt(203)*y(8) + &
            2.000_r8*rxt(165)*y(19) + rxt(211)*y(127)
            mat(317) = mat(317) + rxt(179)*y(2)
            mat(1481) = 2.000_r8*rxt(134)*y(157) + rxt(250)*y(103)
            mat(1155) = rxt(211)*y(130)
            mat(833) = mat(833) + rxt(227)*y(2) + rxt(160)*y(157)
            mat(491) = mat(491) + rxt(228)*y(2)
            mat(457) = mat(457) + rxt(247)*y(2) + rxt(161)*y(157)
            mat(403) = rxt(248)*y(2)
            mat(598) = mat(598) + .330_r8*rxt(314)*y(1)
            mat(505) = mat(505) + .270_r8*rxt(360)*y(1)
            mat(265) = mat(265) + .500_r8*rxt(323)*y(129)
            mat(239) = mat(239) + .120_r8*rxt(293)*y(1)
            mat(750) = mat(750) + .080_r8*rxt(336)*y(1)
            mat(645) = mat(645) + .215_r8*rxt(342)*y(1)
            mat(124) = mat(124) + .100_r8*rxt(349)*y(129)
            mat(129) = mat(129) + .500_r8*rxt(299)*y(129)
            mat(310) = mat(310) + .700_r8*rxt(392)*y(1)
            mat(95) = mat(95) + .650_r8*rxt(286)*y(129)
            mat(437) = rxt(250)*y(158)
        END SUBROUTINE nlnmat02

        SUBROUTINE nlnmat03(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(1434) = -(rxt(196)*y(7) + rxt(200)*y(6) + rxt(201)*y(2) + rxt(202)*y(129)                       + rxt(203)*y(130) &
            + rxt(269)*y(16) + rxt(301)*y(41) + rxt(315)                       *y(48) + rxt(331)*y(54) + rxt(345)*y(142) + rxt(&
            351)*y(141)                       + rxt(361)*y(65) + rxt(363)*y(144) + rxt(369)*y(69) + rxt(373)                      &
             *y(70) + rxt(379)*y(145) + rxt(393)*y(77) + rxt(417)*y(105))
            mat(1292) = -rxt(196)*y(8)
            mat(1255) = -rxt(200)*y(8)
            mat(954) = -rxt(201)*y(8)
            mat(1390) = -rxt(202)*y(8)
            mat(1121) = -rxt(203)*y(8)
            mat(1506) = -rxt(269)*y(8)
            mat(613) = -rxt(301)*y(8)
            mat(599) = -rxt(315)*y(8)
            mat(667) = -rxt(331)*y(8)
            mat(730) = -rxt(345)*y(8)
            mat(770) = -rxt(351)*y(8)
            mat(506) = -rxt(361)*y(8)
            mat(709) = -rxt(363)*y(8)
            mat(581) = -rxt(369)*y(8)
            mat(536) = -rxt(373)*y(8)
            mat(685) = -rxt(379)*y(8)
            mat(311) = -rxt(393)*y(8)
            mat(100) = -rxt(417)*y(8)
            mat(1025) = rxt(195)*y(7)
            mat(954) = mat(954) + rxt(194)*y(7) + rxt(231)*y(29) + rxt(249)*y(34)
            mat(1292) = mat(1292) + rxt(195)*y(1) + rxt(194)*y(2)
            mat(1390) = mat(1390) + rxt(199)*y(9) + rxt(232)*y(29) + rxt(312)*y(47)                       + .500_r8*rxt(358)*y(63)
            mat(1456) = rxt(199)*y(129) + rxt(253)*y(103)
            mat(1156) = rxt(233)*y(29)
            mat(567) = rxt(231)*y(2) + rxt(232)*y(129) + rxt(233)*y(127)
            mat(286) = rxt(249)*y(2)
            mat(199) = rxt(312)*y(129)
            mat(294) = .500_r8*rxt(358)*y(129)
            mat(438) = rxt(253)*y(9)
            mat(1457) = -(rxt(199)*y(129) + rxt(253)*y(103))
            mat(1391) = -rxt(199)*y(9)
            mat(439) = -rxt(253)*y(9)
            mat(1293) = rxt(198)*y(129)
            mat(1391) = mat(1391) + rxt(198)*y(7)
            mat(1435) = rxt(269)*y(16) + rxt(301)*y(41) + rxt(331)*y(54) + rxt(417)                       *y(105)
            mat(1507) = rxt(269)*y(8)
            mat(835) = (rxt(421)+rxt(426)+rxt(432))*y(29)
            mat(568) = (rxt(421)+rxt(426)+rxt(432))*y(27)
            mat(614) = rxt(301)*y(8)
            mat(668) = rxt(331)*y(8)
            mat(101) = rxt(417)*y(8)
            mat(215) = -(rxt(205)*y(129))
            mat(1326) = -rxt(205)*y(10)
            mat(1262) = rxt(204)*y(130)
            mat(1068) = rxt(204)*y(7)
            mat(1260) = rxt(196)*y(8)
            mat(1395) = rxt(196)*y(7)
            mat(872) = -(rxt(218)*y(24) + rxt(273)*y(6) + rxt(274)*y(130) + (4._r8*rxt(275)                       + 4._r8*rxt(276)&
            ) * y(13) + rxt(297)*y(132) + rxt(305)*y(133)                       + rxt(318)*y(136) + rxt(327)*y(138) + rxt(347)*y(&
            142) + rxt(353)                       *y(141) + rxt(366)*y(144) + rxt(381)*y(145))
            mat(1039) = -rxt(218)*y(13)
            mat(1242) = -rxt(273)*y(13)
            mat(1108) = -rxt(274)*y(13)
            mat(464) = -rxt(297)*y(13)
            mat(790) = -rxt(305)*y(13)
            mat(521) = -rxt(318)*y(13)
            mat(628) = -rxt(327)*y(13)
            mat(724) = -rxt(347)*y(13)
            mat(762) = -rxt(353)*y(13)
            mat(702) = -rxt(366)*y(13)
            mat(679) = -rxt(381)*y(13)
            mat(1012) = .310_r8*rxt(314)*y(48)
            mat(1242) = mat(1242) + rxt(302)*y(133)
            mat(1377) = .700_r8*rxt(278)*y(14) + rxt(294)*y(40)
            mat(872) = mat(872) + .900_r8*rxt(305)*y(133)
            mat(155) = .700_r8*rxt(278)*y(129)
            mat(592) = .310_r8*rxt(314)*y(1)
            mat(320) = rxt(294)*y(129)
            mat(790) = mat(790) + rxt(302)*y(6) + .900_r8*rxt(305)*y(13)                       + 4.000_r8*rxt(306)*y(133) + rxt(&
            367)*y(144) + rxt(348)*y(142)                       + rxt(354)*y(141) + rxt(382)*y(145)
            mat(702) = mat(702) + rxt(367)*y(133)
            mat(724) = mat(724) + rxt(348)*y(133)
            mat(762) = mat(762) + rxt(354)*y(133)
            mat(679) = mat(679) + rxt(382)*y(133)
            mat(154) = -(rxt(278)*y(129))
            mat(1319) = -rxt(278)*y(14)
            mat(852) = rxt(274)*y(130)
            mat(1061) = rxt(274)*y(13)
            mat(57) = -(rxt(162)*y(157) + rxt(180)*y(129))
            mat(960) = -rxt(162)*y(35)
            mat(1303) = -rxt(180)*y(35)
            mat(17) = -(rxt(181)*y(129))
            mat(1296) = -rxt(181)*y(36)
            mat(1509) = -(rxt(212)*y(127) + rxt(236)*y(128) + rxt(269)*y(8) + rxt(270)                       *y(129) + rxt(271)*y(&
            2) + rxt(272)*y(130))
            mat(1159) = -rxt(212)*y(16)
            mat(849) = -rxt(236)*y(16)
            mat(1437) = -rxt(269)*y(16)
            mat(1393) = -rxt(270)*y(16)
            mat(957) = -rxt(271)*y(16)
            mat(1124) = -rxt(272)*y(16)
            mat(1028) = .540_r8*rxt(314)*y(48) + .600_r8*rxt(360)*y(65) + rxt(293)*y(37)                       + .800_r8*rxt(336)&
            *y(60) + .700_r8*rxt(342)*y(61)
            mat(1258) = rxt(273)*y(13) + rxt(321)*y(137) + .500_r8*rxt(334)*y(139)                       + .100_r8*rxt(375)*y(143)&
             + .510_r8*rxt(362)*y(144)                       + .250_r8*rxt(343)*y(142) + rxt(350)*y(141) + .500_r8*rxt(289)       &
                            *y(134) + rxt(325)*y(138) + .072_r8*rxt(368)*y(69)
            mat(1393) = mat(1393) + .300_r8*rxt(278)*y(14) + .500_r8*rxt(307)*y(45)                       + rxt(312)*y(47) + &
            .500_r8*rxt(358)*y(63) + rxt(277)*y(15)                       + .800_r8*rxt(308)*y(43)
            mat(1437) = mat(1437) + .600_r8*rxt(363)*y(144) + .250_r8*rxt(345)*y(142)                       + rxt(351)*y(141) + &
            .072_r8*rxt(369)*y(69)
            mat(885) = rxt(273)*y(6) + (4.000_r8*rxt(275)+2.000_r8*rxt(276))*y(13)                       + rxt(218)*y(24) + rxt(&
            305)*y(133) + 1.200_r8*rxt(366)*y(144)                       + .880_r8*rxt(347)*y(142) + 2.000_r8*rxt(353)*y(141)     &
                              + .700_r8*rxt(297)*y(132) + rxt(318)*y(136) + .800_r8*rxt(327)                       *y(138) + &
            .700_r8*rxt(381)*y(145)
            mat(159) = .300_r8*rxt(278)*y(129)
            mat(1124) = mat(1124) + .008_r8*rxt(370)*y(69)
            mat(1055) = rxt(218)*y(13)
            mat(601) = .540_r8*rxt(314)*y(1)
            mat(508) = .600_r8*rxt(360)*y(1)
            mat(451) = rxt(321)*y(6)
            mat(801) = rxt(305)*y(13) + .600_r8*rxt(367)*y(144) + .250_r8*rxt(348)*y(142)                       + rxt(354)*y(141)
            mat(232) = .500_r8*rxt(307)*y(129)
            mat(200) = rxt(312)*y(129)
            mat(240) = rxt(293)*y(1)
            mat(295) = .500_r8*rxt(358)*y(129)
            mat(114) = .500_r8*rxt(334)*y(6)
            mat(368) = .100_r8*rxt(375)*y(6)
            mat(712) = .510_r8*rxt(362)*y(6) + .600_r8*rxt(363)*y(8) + 1.200_r8*rxt(366)                       *y(13) + &
            .600_r8*rxt(367)*y(133)
            mat(754) = .800_r8*rxt(336)*y(1)
            mat(647) = .700_r8*rxt(342)*y(1)
            mat(733) = .250_r8*rxt(343)*y(6) + .250_r8*rxt(345)*y(8) + .880_r8*rxt(347)                       *y(13) + &
            .250_r8*rxt(348)*y(133)
            mat(773) = rxt(350)*y(6) + rxt(351)*y(8) + 2.000_r8*rxt(353)*y(13) + rxt(354)                       *y(133) + &
            4.000_r8*rxt(355)*y(141)
            mat(470) = .700_r8*rxt(297)*y(13)
            mat(528) = rxt(318)*y(13)
            mat(271) = rxt(277)*y(129)
            mat(514) = .800_r8*rxt(308)*y(129)
            mat(395) = .500_r8*rxt(289)*y(6)
            mat(635) = rxt(325)*y(6) + .800_r8*rxt(327)*y(13)
            mat(583) = .072_r8*rxt(368)*y(6) + .072_r8*rxt(369)*y(8) + .008_r8*rxt(370)                       *y(130)
            mat(688) = .700_r8*rxt(381)*y(13)
            mat(1171) = -(rxt(163)*y(3) + rxt(164)*y(1) + (rxt(165) + rxt(166) + rxt(167)                       ) * y(130))
            mat(910) = -rxt(163)*y(19)
            mat(1020) = -rxt(164)*y(19)
            mat(1116) = -(rxt(165) + rxt(166) + rxt(167)) * y(19)
            mat(949) = rxt(175)*y(18) + rxt(168)*y(129)
            mat(975) = rxt(159)*y(18)
            mat(656) = rxt(175)*y(2) + rxt(159)*y(157) + rxt(173)*y(129) + rxt(208)                       *y(127) + rxt(251)*y(&
            103)
            mat(604) = rxt(267)*y(129)
            mat(481) = rxt(184)*y(129)
            mat(1385) = rxt(168)*y(2) + rxt(173)*y(18) + rxt(267)*y(17) + rxt(184)*y(5)                       + rxt(270)*y(16) + &
            rxt(402)*y(106) + rxt(403)*y(107) + rxt(406)                       *y(108)
            mat(1501) = rxt(270)*y(129)
            mat(1151) = rxt(208)*y(18)
            mat(436) = rxt(251)*y(18)
            mat(148) = rxt(402)*y(129)
            mat(384) = rxt(403)*y(129)
            mat(813) = rxt(406)*y(129)
            mat(1114) = -((rxt(165) + rxt(166) + rxt(167)) * y(19) + rxt(170)*y(129)                       + rxt(176)*y(2) + rxt(&
            177)*y(1) + 4._r8*rxt(178)*y(130) + rxt(191)                       *y(6) + rxt(203)*y(8) + rxt(204)*y(7) + (rxt(210) &
            + rxt(211)                       ) * y(127) + rxt(217)*y(24) + rxt(235)*y(128) + rxt(239)*y(31)                       &
            + rxt(272)*y(16) + rxt(274)*y(13) + rxt(282)*y(131) + rxt(290)                       *y(134) + rxt(296)*y(132) + rxt(&
            304)*y(133) + rxt(317)*y(136)                       + rxt(322)*y(137) + rxt(326)*y(138) + rxt(339)*y(140) + rxt(346)  &
                                 *y(142) + rxt(352)*y(141) + rxt(364)*y(144) + rxt(370)*y(69)                       + rxt(376)*y(&
            143) + rxt(380)*y(145) + rxt(387)*y(146) + rxt(395)                       *y(147))
            mat(1169) = -(rxt(165) + rxt(166) + rxt(167)) * y(130)
            mat(1383) = -rxt(170)*y(130)
            mat(947) = -rxt(176)*y(130)
            mat(1018) = -rxt(177)*y(130)
            mat(1248) = -rxt(191)*y(130)
            mat(1427) = -rxt(203)*y(130)
            mat(1285) = -rxt(204)*y(130)
            mat(1149) = -(rxt(210) + rxt(211)) * y(130)
            mat(1045) = -rxt(217)*y(130)
            mat(844) = -rxt(235)*y(130)
            mat(1193) = -rxt(239)*y(130)
            mat(1499) = -rxt(272)*y(130)
            mat(876) = -rxt(274)*y(130)
            mat(180) = -rxt(282)*y(130)
            mat(391) = -rxt(290)*y(130)
            mat(466) = -rxt(296)*y(130)
            mat(793) = -rxt(304)*y(130)
            mat(523) = -rxt(317)*y(130)
            mat(446) = -rxt(322)*y(130)
            mat(630) = -rxt(326)*y(130)
            mat(338) = -rxt(339)*y(130)
            mat(725) = -rxt(346)*y(130)
            mat(765) = -rxt(352)*y(130)
            mat(704) = -rxt(364)*y(130)
            mat(577) = -rxt(370)*y(130)
            mat(364) = -rxt(376)*y(130)
            mat(680) = -rxt(380)*y(130)
            mat(250) = -rxt(387)*y(130)
            mat(546) = -rxt(395)*y(130)
            mat(1018) = mat(1018) + rxt(169)*y(129) + .190_r8*rxt(314)*y(48)                       + .060_r8*rxt(360)*y(65) + &
            .120_r8*rxt(293)*y(37)                       + .060_r8*rxt(336)*y(60) + .275_r8*rxt(342)*y(61) + rxt(392)             &
                      *y(77)
            mat(947) = mat(947) + rxt(271)*y(16) + rxt(179)*y(20)
            mat(908) = rxt(163)*y(19) + rxt(291)*y(135)
            mat(603) = rxt(268)*y(129)
            mat(1248) = mat(1248) + rxt(273)*y(13) + rxt(321)*y(137) + rxt(334)*y(139)                       + .900_r8*rxt(375)*y(&
            143) + .900_r8*rxt(386)*y(146) + rxt(394)                       *y(147) + rxt(362)*y(144) + .470_r8*rxt(343)*y(142) + &
            rxt(295)                       *y(132) + rxt(316)*y(136) + .250_r8*rxt(289)*y(134)                       + &
            .794_r8*rxt(368)*y(69) + rxt(378)*y(145) + rxt(281)*y(131)
            mat(1285) = mat(1285) + .700_r8*rxt(390)*y(76)
            mat(1383) = mat(1383) + rxt(169)*y(1) + rxt(268)*y(17) + rxt(202)*y(8)                       + rxt(180)*y(35) + rxt(&
            181)*y(36) + rxt(174)*y(20) + rxt(215)                       *y(24) + rxt(238)*y(31) + .500_r8*rxt(358)*y(63)         &
                          + .250_r8*rxt(385)*y(73) + rxt(309)*y(44) + .200_r8*rxt(349)                       *y(62) + rxt(277)*y(&
            15) + rxt(310)*y(42) + rxt(308)*y(43)                       + rxt(329)*y(53) + rxt(372)*y(70) + .350_r8*rxt(286)*y(98)&
                                   + rxt(279)*y(99) + rxt(413)*y(104) + .500_r8*rxt(416)*y(105)
            mat(1427) = mat(1427) + rxt(202)*y(129) + rxt(269)*y(16) + rxt(363)*y(144)                       + .470_r8*rxt(345)*y(&
            142) + .794_r8*rxt(369)*y(69) + rxt(373)                       *y(70) + rxt(379)*y(145)
            mat(876) = mat(876) + rxt(273)*y(6) + 4.000_r8*rxt(275)*y(13) + rxt(218)                       *y(24) + .900_r8*rxt(&
            305)*y(133) + rxt(366)*y(144)                       + .730_r8*rxt(347)*y(142) + rxt(353)*y(141) + rxt(297)*y(132)     &
                              + rxt(318)*y(136) + .300_r8*rxt(327)*y(138) + .800_r8*rxt(381)                       *y(145)
            mat(59) = rxt(180)*y(129)
            mat(18) = rxt(181)*y(129)
            mat(1499) = mat(1499) + rxt(271)*y(2) + rxt(269)*y(8) + rxt(212)*y(127)                       + rxt(236)*y(128)
            mat(1169) = mat(1169) + rxt(163)*y(3)
            mat(1114) = mat(1114) + .794_r8*rxt(370)*y(69)
            mat(315) = rxt(179)*y(2) + rxt(174)*y(129) + rxt(209)*y(127)
            mat(1149) = mat(1149) + rxt(212)*y(16) + rxt(209)*y(20)
            mat(1045) = mat(1045) + rxt(215)*y(129) + rxt(218)*y(13)
            mat(844) = mat(844) + rxt(236)*y(16)
            mat(1193) = mat(1193) + rxt(238)*y(129)
            mat(595) = .190_r8*rxt(314)*y(1)
            mat(504) = .060_r8*rxt(360)*y(1)
            mat(446) = mat(446) + rxt(321)*y(6)
            mat(793) = mat(793) + .900_r8*rxt(305)*y(13) + rxt(367)*y(144)                       + .470_r8*rxt(348)*y(142) + rxt(&
            382)*y(145)
            mat(238) = .120_r8*rxt(293)*y(1)
            mat(291) = .500_r8*rxt(358)*y(129)
            mat(111) = rxt(334)*y(6)
            mat(364) = mat(364) + .900_r8*rxt(375)*y(6)
            mat(36) = .250_r8*rxt(385)*y(129)
            mat(250) = mat(250) + .900_r8*rxt(386)*y(6)
            mat(63) = .700_r8*rxt(390)*y(7)
            mat(546) = mat(546) + rxt(394)*y(6)
            mat(377) = rxt(309)*y(129)
            mat(704) = mat(704) + rxt(362)*y(6) + rxt(363)*y(8) + rxt(366)*y(13)                       + rxt(367)*y(133)
            mat(746) = .060_r8*rxt(336)*y(1)
            mat(643) = .275_r8*rxt(342)*y(1)
            mat(725) = mat(725) + .470_r8*rxt(343)*y(6) + .470_r8*rxt(345)*y(8)                       + .730_r8*rxt(347)*y(13) + &
            .470_r8*rxt(348)*y(133)
            mat(123) = .200_r8*rxt(349)*y(129)
            mat(765) = mat(765) + rxt(353)*y(13)
            mat(466) = mat(466) + rxt(295)*y(6) + rxt(297)*y(13) + 2.400_r8*rxt(298)                       *y(132)
            mat(308) = rxt(392)*y(1)
            mat(523) = mat(523) + rxt(316)*y(6) + rxt(318)*y(13)
            mat(269) = rxt(277)*y(129)
            mat(77) = rxt(310)*y(129)
            mat(512) = rxt(308)*y(129)
            mat(619) = rxt(329)*y(129)
            mat(391) = mat(391) + .250_r8*rxt(289)*y(6)
            mat(192) = rxt(291)*y(3)
            mat(630) = mat(630) + .300_r8*rxt(327)*y(13)
            mat(577) = mat(577) + .794_r8*rxt(368)*y(6) + .794_r8*rxt(369)*y(8)                       + .794_r8*rxt(370)*y(130)
            mat(533) = rxt(372)*y(129) + rxt(373)*y(8)
            mat(680) = mat(680) + rxt(378)*y(6) + rxt(379)*y(8) + .800_r8*rxt(381)*y(13)                       + rxt(382)*y(133)
            mat(94) = .350_r8*rxt(286)*y(129)
            mat(242) = rxt(279)*y(129)
            mat(180) = mat(180) + rxt(281)*y(6)
            mat(555) = rxt(413)*y(129)
            mat(98) = .500_r8*rxt(416)*y(129)
        END SUBROUTINE nlnmat03

        SUBROUTINE nlnmat04(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(312) = -(rxt(174)*y(129) + rxt(179)*y(2) + rxt(209)*y(127))
            mat(1337) = -rxt(174)*y(20)
            mat(924) = -rxt(179)*y(20)
            mat(1130) = -rxt(209)*y(20)
            mat(1337) = mat(1337) + 2.000_r8*rxt(172)*y(129)
            mat(1075) = 2.000_r8*rxt(178)*y(130)
            mat(1484) = -(rxt(134)*y(157) + rxt(250)*y(103) + rxt(414)*y(109))
            mat(982) = -rxt(134)*y(158)
            mat(440) = -rxt(250)*y(158)
            mat(83) = -rxt(414)*y(158)
            mat(660) = rxt(173)*y(129)
            mat(1392) = rxt(173)*y(18) + 2.000_r8*rxt(171)*y(129) + rxt(199)*y(9)                       + rxt(205)*y(10) + rxt(&
            278)*y(14) + rxt(270)*y(16) + rxt(170)                       *y(130) + rxt(174)*y(20) + rxt(226)*y(27) + rxt(230)*y(&
            28)                       + rxt(246)*y(32) + rxt(300)*y(41) + rxt(294)*y(40) + rxt(323)                       *y(52) &
            + rxt(307)*y(45) + rxt(287)*y(38) + .500_r8*rxt(341)                       *y(61) + rxt(320)*y(49) + rxt(319)*y(50) + &
            rxt(324)*y(51)                       + rxt(328)*y(55) + rxt(330)*y(54) + (rxt(383)+rxt(384))*y(71)                    &
               + rxt(279)*y(99)
            mat(1458) = rxt(199)*y(129)
            mat(221) = rxt(205)*y(129)
            mat(158) = rxt(278)*y(129)
            mat(1508) = rxt(270)*y(129)
            mat(1178) = rxt(167)*y(130)
            mat(1123) = rxt(170)*y(129) + rxt(167)*y(19)
            mat(318) = rxt(174)*y(129)
            mat(836) = rxt(226)*y(129) + (rxt(422)+rxt(427)+rxt(433))*y(28) + (rxt(423)                        +rxt(434))*y(33)
            mat(492) = rxt(230)*y(129) + (rxt(422)+rxt(427)+rxt(433))*y(27)
            mat(458) = rxt(246)*y(129)
            mat(404) = (rxt(423)+rxt(434))*y(27)
            mat(615) = rxt(300)*y(129)
            mat(322) = rxt(294)*y(129)
            mat(266) = rxt(323)*y(129)
            mat(231) = rxt(307)*y(129)
            mat(89) = rxt(287)*y(129)
            mat(646) = .500_r8*rxt(341)*y(129)
            mat(32) = rxt(320)*y(129)
            mat(171) = rxt(319)*y(129)
            mat(374) = rxt(324)*y(129)
            mat(176) = rxt(328)*y(129)
            mat(669) = rxt(330)*y(129)
            mat(133) = (rxt(383)+rxt(384))*y(129)
            mat(244) = rxt(279)*y(129)
            mat(1150) = -(rxt(207)*y(1) + rxt(208)*y(18) + rxt(209)*y(20) + (rxt(210)                       + rxt(211)) * y(130) &
            + rxt(212)*y(16) + rxt(229)*y(28) + rxt(233)                       *y(29) + rxt(285)*y(38))
            mat(1019) = -rxt(207)*y(127)
            mat(655) = -rxt(208)*y(127)
            mat(316) = -rxt(209)*y(127)
            mat(1115) = -(rxt(210) + rxt(211)) * y(127)
            mat(1500) = -rxt(212)*y(127)
            mat(490) = -rxt(229)*y(127)
            mat(564) = -rxt(233)*y(127)
            mat(87) = -rxt(285)*y(127)
            mat(948) = rxt(214)*y(24) + rxt(227)*y(27)
            mat(974) = rxt(160)*y(27) + rxt(155)*y(101)
            mat(1249) = rxt(219)*y(24)
            mat(1384) = rxt(215)*y(24) + rxt(226)*y(27)
            mat(877) = rxt(218)*y(24)
            mat(1046) = rxt(214)*y(2) + rxt(219)*y(6) + rxt(215)*y(129) + rxt(218)*y(13) + (+ 4.000_r8*rxt(221)+2.000_r8*rxt(223))&
            *y(24) + rxt(243)*y(31)                       + rxt(410)*y(108)
            mat(829) = rxt(227)*y(2) + rxt(160)*y(157) + rxt(226)*y(129)
            mat(1194) = rxt(243)*y(24)
            mat(68) = rxt(155)*y(157)
            mat(812) = rxt(410)*y(24)
            mat(1125) = rxt(233)*y(29)
            mat(1030) = 2.000_r8*rxt(222)*y(24)
            mat(819) = (rxt(422)+rxt(427)+rxt(433))*y(28) + (rxt(421)+rxt(426)+rxt(432))                       *y(29)
            mat(485) = (rxt(422)+rxt(427)+rxt(433))*y(27)
            mat(558) = rxt(233)*y(127) + (rxt(421)+rxt(426)+rxt(432))*y(27)
            mat(1044) = -(rxt(214)*y(2) + (rxt(215) + rxt(216)) * y(129) + rxt(217)                       *y(130) + rxt(218)*y(13)&
             + rxt(219)*y(6) + rxt(220)*y(7)                       + (4._r8*rxt(221) + 4._r8*rxt(222) + 4._r8*rxt(223)            &
                       + 4._r8*rxt(224)) * y(24) + (rxt(242) + rxt(243) + rxt(244)                       ) * y(31) + rxt(410)*y(&
            108))
            mat(946) = -rxt(214)*y(24)
            mat(1382) = -(rxt(215) + rxt(216)) * y(24)
            mat(1113) = -rxt(217)*y(24)
            mat(875) = -rxt(218)*y(24)
            mat(1247) = -rxt(219)*y(24)
            mat(1284) = -rxt(220)*y(24)
            mat(1192) = -(rxt(242) + rxt(243) + rxt(244)) * y(24)
            mat(810) = -rxt(410)*y(24)
            mat(1017) = rxt(207)*y(127)
            mat(946) = mat(946) + rxt(228)*y(28) + rxt(231)*y(29)
            mat(1382) = mat(1382) + rxt(230)*y(28)
            mat(1113) = mat(1113) + rxt(211)*y(127)
            mat(1148) = rxt(207)*y(1) + rxt(211)*y(130) + rxt(229)*y(28)
            mat(138) = rxt(412)*y(108)
            mat(489) = rxt(228)*y(2) + rxt(230)*y(129) + rxt(229)*y(127)
            mat(563) = rxt(231)*y(2)
            mat(810) = mat(810) + rxt(412)*y(25)
            mat(134) = -(rxt(412)*y(108))
            mat(802) = -rxt(412)*y(25)
            mat(1032) = 2.000_r8*rxt(223)*y(24) + rxt(242)*y(31)
            mat(1181) = rxt(242)*y(24)
            mat(1029) = 2.000_r8*rxt(224)*y(24)
            mat(824) = -(rxt(160)*y(157) + rxt(226)*y(129) + rxt(227)*y(2) + (rxt(421)                       + rxt(426) + rxt(432)&
            ) * y(29) + (rxt(422) + rxt(427) + rxt(433)                       ) * y(28) + (rxt(423) + rxt(434)) * y(33))
            mat(965) = -rxt(160)*y(27)
            mat(1375) = -rxt(226)*y(27)
            mat(939) = -rxt(227)*y(27)
            mat(561) = -(rxt(421) + rxt(426) + rxt(432)) * y(27)
            mat(487) = -(rxt(422) + rxt(427) + rxt(433)) * y(27)
            mat(398) = -(rxt(423) + rxt(434)) * y(27)
            mat(651) = rxt(208)*y(127)
            mat(1375) = mat(1375) + rxt(216)*y(24)
            mat(1491) = rxt(212)*y(127)
            mat(1106) = rxt(210)*y(127)
            mat(313) = rxt(209)*y(127)
            mat(1141) = rxt(208)*y(18) + rxt(212)*y(16) + rxt(210)*y(130) + rxt(209)                       *y(20) + rxt(229)*y(28)&
             + rxt(285)*y(38)
            mat(1037) = rxt(216)*y(129)
            mat(487) = mat(487) + rxt(229)*y(127)
            mat(86) = rxt(285)*y(127)
            mat(486) = -(rxt(228)*y(2) + rxt(229)*y(127) + rxt(230)*y(129) + (rxt(422)                       + rxt(427) + rxt(433)&
            ) * y(27))
            mat(933) = -rxt(228)*y(28)
            mat(1134) = -rxt(229)*y(28)
            mat(1351) = -rxt(230)*y(28)
            mat(822) = -(rxt(422) + rxt(427) + rxt(433)) * y(28)
            mat(1351) = mat(1351) + rxt(232)*y(29)
            mat(1087) = rxt(217)*y(24)
            mat(1033) = rxt(217)*y(130)
            mat(559) = rxt(232)*y(129)
            mat(560) = -(rxt(231)*y(2) + rxt(232)*y(129) + rxt(233)*y(127) + (rxt(421)                       + rxt(426) + rxt(432)&
            ) * y(27))
            mat(935) = -rxt(231)*y(29)
            mat(1358) = -rxt(232)*y(29)
            mat(1136) = -rxt(233)*y(29)
            mat(823) = -(rxt(421) + rxt(426) + rxt(432)) * y(29)
            mat(1270) = rxt(220)*y(24)
            mat(1035) = rxt(220)*y(7)
            mat(1031) = rxt(244)*y(31)
            mat(820) = (rxt(423)+rxt(434))*y(33)
            mat(1180) = rxt(244)*y(24)
            mat(396) = (rxt(423)+rxt(434))*y(27)
            mat(839) = -(rxt(234)*y(1) + rxt(235)*y(130) + rxt(236)*y(16))
            mat(1011) = -rxt(234)*y(128)
            mat(1107) = -rxt(235)*y(128)
            mat(1492) = -rxt(236)*y(128)
            mat(940) = rxt(237)*y(31) + rxt(247)*y(32)
            mat(966) = rxt(161)*y(32)
            mat(1241) = rxt(240)*y(31)
            mat(1376) = rxt(238)*y(31) + rxt(246)*y(32)
            mat(1038) = (rxt(242)+rxt(243))*y(31)
            mat(1187) = rxt(237)*y(2) + rxt(240)*y(6) + rxt(238)*y(129) + (rxt(242)                        +rxt(243))*y(24) + &
            4.000_r8*rxt(245)*y(31) + rxt(411)*y(108)
            mat(453) = rxt(247)*y(2) + rxt(161)*y(157) + rxt(246)*y(129)
            mat(806) = rxt(411)*y(31)
            mat(1196) = -(rxt(237)*y(2) + rxt(238)*y(129) + rxt(239)*y(130) + rxt(240)                       *y(6) + rxt(241)*y(7)&
             + (rxt(242) + rxt(243) + rxt(244)) * y(24)                       + 4._r8*rxt(245)*y(31) + rxt(411)*y(108))
            mat(950) = -rxt(237)*y(31)
            mat(1386) = -rxt(238)*y(31)
            mat(1117) = -rxt(239)*y(31)
            mat(1251) = -rxt(240)*y(31)
            mat(1288) = -rxt(241)*y(31)
            mat(1048) = -(rxt(242) + rxt(243) + rxt(244)) * y(31)
            mat(814) = -rxt(411)*y(31)
            mat(1021) = rxt(234)*y(128)
            mat(950) = mat(950) + rxt(248)*y(33) + rxt(249)*y(34)
            mat(846) = rxt(234)*y(1)
            mat(402) = rxt(248)*y(2)
            mat(284) = rxt(249)*y(2)
            mat(452) = -(rxt(161)*y(157) + rxt(246)*y(129) + rxt(247)*y(2))
            mat(963) = -rxt(161)*y(32)
            mat(1348) = -rxt(246)*y(32)
            mat(931) = -rxt(247)*y(32)
            mat(1488) = rxt(236)*y(128)
            mat(1085) = rxt(235)*y(128)
            mat(837) = rxt(236)*y(16) + rxt(235)*y(130)
            mat(397) = -(rxt(248)*y(2) + (rxt(423) + rxt(434)) * y(27))
            mat(927) = -rxt(248)*y(33)
            mat(821) = -(rxt(423) + rxt(434)) * y(33)
            mat(1083) = rxt(239)*y(31)
            mat(1183) = rxt(239)*y(130)
            mat(280) = -(rxt(249)*y(2))
            mat(922) = -rxt(249)*y(34)
            mat(1264) = rxt(241)*y(31)
            mat(1182) = rxt(241)*y(7)
            mat(344) = -((rxt(437) + rxt(438)) * y(2) + rxt(445)*y(3) + rxt(449)*y(153))
            mat(925) = -(rxt(437) + rxt(438)) * y(148)
            mat(892) = -rxt(445)*y(148)
            mat(422) = -rxt(449)*y(148)
            mat(405) = -(rxt(440)*y(5) + rxt(441)*y(6) + rxt(448)*y(153))
            mat(473) = -rxt(440)*y(149)
            mat(1218) = -rxt(441)*y(149)
            mat(423) = -rxt(448)*y(149)
            mat(894) = rxt(445)*y(148) + rxt(442)*y(150) + rxt(435)*y(151)
            mat(345) = rxt(445)*y(3)
            mat(203) = rxt(442)*y(3)
            mat(297) = rxt(435)*y(3)
            mat(201) = -((rxt(442) + rxt(443)) * y(3) + rxt(444)*y(2))
            mat(889) = -(rxt(442) + rxt(443)) * y(150)
            mat(920) = -rxt(444)*y(150)
            mat(296) = -(rxt(435)*y(3))
            mat(891) = -rxt(435)*y(151)
            mat(923) = rxt(438)*y(148) + rxt(444)*y(150)
            mat(343) = rxt(438)*y(2)
            mat(202) = rxt(444)*y(2)
        END SUBROUTINE nlnmat04

        SUBROUTINE nlnmat05(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(414) = -(rxt(447)*y(153))
            mat(424) = -rxt(447)*y(152)
            mat(929) = rxt(437)*y(148)
            mat(895) = rxt(443)*y(150)
            mat(474) = rxt(440)*y(149)
            mat(1219) = rxt(441)*y(149)
            mat(346) = rxt(437)*y(2)
            mat(406) = rxt(440)*y(5) + rxt(441)*y(6)
            mat(204) = rxt(443)*y(3)
            mat(222) = -(rxt(182)*y(3) + rxt(183)*y(2))
            mat(890) = -rxt(182)*y(154)
            mat(921) = -rxt(183)*y(154)
            mat(921) = mat(921) + rxt(437)*y(148)
            mat(342) = rxt(437)*y(2) + .900_r8*rxt(449)*y(153)
            mat(413) = .800_r8*rxt(447)*y(153)
            mat(421) = .900_r8*rxt(449)*y(148) + .800_r8*rxt(447)*y(152)
            mat(425) = -(rxt(447)*y(152) + rxt(448)*y(149) + rxt(449)*y(148))
            mat(415) = -rxt(447)*y(153)
            mat(407) = -rxt(448)*y(153)
            mat(347) = -rxt(449)*y(153)
            mat(587) = -(rxt(313)*y(129) + rxt(314)*y(1) + rxt(315)*y(8))
            mat(1360) = -rxt(313)*y(48)
            mat(997) = -rxt(314)*y(48)
            mat(1406) = -rxt(315)*y(48)
            mat(997) = mat(997) + .070_r8*rxt(360)*y(65)
            mat(496) = .070_r8*rxt(360)*y(1)
            mat(494) = -(rxt(359)*y(129) + rxt(360)*y(1) + rxt(361)*y(8))
            mat(1352) = -rxt(359)*y(65)
            mat(992) = -rxt(360)*y(65)
            mat(1400) = -rxt(361)*y(65)
            mat(442) = -(rxt(321)*y(6) + rxt(322)*y(130))
            mat(1221) = -rxt(321)*y(137)
            mat(1084) = -rxt(322)*y(137)
            mat(1347) = rxt(313)*y(48) + .500_r8*rxt(323)*y(52)
            mat(586) = rxt(313)*y(129)
            mat(261) = .500_r8*rxt(323)*y(129)
            mat(607) = -(rxt(300)*y(129) + rxt(301)*y(8))
            mat(1362) = -rxt(300)*y(41)
            mat(1408) = -rxt(301)*y(41)
            mat(999) = .500_r8*rxt(314)*y(48) + .040_r8*rxt(336)*y(60)
            mat(1230) = rxt(321)*y(137) + rxt(334)*y(139) + .400_r8*rxt(375)*y(143)                       + rxt(338)*y(140) + rxt(&
            295)*y(132) + .270_r8*rxt(316)*y(136)
            mat(1362) = mat(1362) + .500_r8*rxt(299)*y(39) + rxt(310)*y(42)
            mat(861) = .800_r8*rxt(297)*y(132)
            mat(589) = .500_r8*rxt(314)*y(1)
            mat(443) = rxt(321)*y(6)
            mat(110) = rxt(334)*y(6)
            mat(361) = .400_r8*rxt(375)*y(6)
            mat(336) = rxt(338)*y(6)
            mat(736) = .040_r8*rxt(336)*y(1)
            mat(463) = rxt(295)*y(6) + .800_r8*rxt(297)*y(13) + 3.200_r8*rxt(298)*y(132)
            mat(127) = .500_r8*rxt(299)*y(129)
            mat(518) = .270_r8*rxt(316)*y(6)
            mat(76) = rxt(310)*y(129)
            mat(319) = -(rxt(294)*y(129))
            mat(1338) = -rxt(294)*y(40)
            mat(989) = .250_r8*rxt(314)*y(48) + .200_r8*rxt(360)*y(65)
            mat(854) = .100_r8*rxt(305)*y(133)
            mat(1076) = .250_r8*rxt(304)*y(133) + .250_r8*rxt(352)*y(141)
            mat(585) = .250_r8*rxt(314)*y(1)
            mat(493) = .200_r8*rxt(360)*y(1)
            mat(777) = .100_r8*rxt(305)*y(13) + .250_r8*rxt(304)*y(130)
            mat(757) = .250_r8*rxt(352)*y(130)
            mat(260) = -(rxt(323)*y(129))
            mat(1332) = -rxt(323)*y(52)
            mat(1073) = rxt(322)*y(137)
            mat(441) = rxt(322)*y(130)
            mat(789) = -(rxt(302)*y(6) + rxt(303)*y(7) + rxt(304)*y(130) + rxt(305)*y(13)                       + 4._r8*rxt(306)&
            *y(133) + rxt(348)*y(142) + rxt(367)*y(144)                       + rxt(382)*y(145))
            mat(1240) = -rxt(302)*y(133)
            mat(1275) = -rxt(303)*y(133)
            mat(1105) = -rxt(304)*y(133)
            mat(871) = -rxt(305)*y(133)
            mat(723) = -rxt(348)*y(133)
            mat(701) = -rxt(367)*y(133)
            mat(678) = -rxt(382)*y(133)
            mat(1240) = mat(1240) + rxt(338)*y(140) + .530_r8*rxt(343)*y(142) + rxt(350)                       *y(141) + rxt(325)&
            *y(138)
            mat(1373) = rxt(300)*y(41) + .500_r8*rxt(307)*y(45) + rxt(330)*y(54)
            mat(1418) = rxt(301)*y(41) + .530_r8*rxt(345)*y(142) + rxt(351)*y(141)                       + rxt(331)*y(54)
            mat(871) = mat(871) + .260_r8*rxt(347)*y(142) + rxt(353)*y(141)                       + .300_r8*rxt(327)*y(138)
            mat(608) = rxt(300)*y(129) + rxt(301)*y(8)
            mat(789) = mat(789) + .530_r8*rxt(348)*y(142)
            mat(228) = .500_r8*rxt(307)*y(129)
            mat(337) = rxt(338)*y(6)
            mat(723) = mat(723) + .530_r8*rxt(343)*y(6) + .530_r8*rxt(345)*y(8)                       + .260_r8*rxt(347)*y(13) + &
            .530_r8*rxt(348)*y(133)
            mat(761) = rxt(350)*y(6) + rxt(351)*y(8) + rxt(353)*y(13) + 4.000_r8*rxt(355)                       *y(141)
            mat(627) = rxt(325)*y(6) + .300_r8*rxt(327)*y(13)
            mat(663) = rxt(330)*y(129) + rxt(331)*y(8)
            mat(227) = -(rxt(307)*y(129))
            mat(1327) = -rxt(307)*y(45)
            mat(1069) = .750_r8*rxt(304)*y(133) + .750_r8*rxt(352)*y(141)
            mat(776) = .750_r8*rxt(304)*y(130)
            mat(755) = .750_r8*rxt(352)*y(130)
            mat(194) = -(rxt(312)*y(129))
            mat(1324) = -rxt(312)*y(47)
            mat(1261) = rxt(303)*y(133)
            mat(775) = rxt(303)*y(7)
            mat(150) = -(rxt(332)*y(129))
            mat(1318) = -rxt(332)*y(64)
            mat(1206) = .100_r8*rxt(375)*y(143)
            mat(1397) = rxt(315)*y(48)
            mat(584) = rxt(315)*y(8)
            mat(354) = .100_r8*rxt(375)*y(6)
            mat(84) = -(rxt(285)*y(127) + rxt(287)*y(129))
            mat(1126) = -rxt(285)*y(38)
            mat(1308) = -rxt(287)*y(38)
            mat(233) = -(rxt(284)*y(127) + rxt(288)*y(129) + rxt(293)*y(1))
            mat(1128) = -rxt(284)*y(37)
            mat(1328) = -rxt(288)*y(37)
            mat(986) = -rxt(293)*y(37)
            mat(23) = -(rxt(371)*y(129))
            mat(1297) = -rxt(371)*y(57)
            mat(288) = -(rxt(358)*y(129))
            mat(1335) = -rxt(358)*y(63)
            mat(1265) = rxt(356)*y(141)
            mat(756) = rxt(356)*y(7)
            mat(26) = -(rxt(333)*y(129))
            mat(1298) = -rxt(333)*y(56)
            mat(108) = -(rxt(334)*y(6))
            mat(1204) = -rxt(334)*y(139)
            mat(1311) = rxt(333)*y(56)
            mat(27) = rxt(333)*y(129)
            mat(358) = -(rxt(375)*y(6) + rxt(376)*y(130))
            mat(1214) = -rxt(375)*y(143)
            mat(1079) = -rxt(376)*y(143)
            mat(1341) = rxt(371)*y(57) + rxt(377)*y(66)
            mat(24) = rxt(371)*y(129)
            mat(326) = rxt(377)*y(129)
            mat(324) = -(rxt(377)*y(129))
            mat(1339) = -rxt(377)*y(66)
            mat(1077) = rxt(376)*y(143)
            mat(356) = rxt(376)*y(130)
            mat(184) = -(rxt(337)*y(129))
            mat(1323) = -rxt(337)*y(58)
            mat(1208) = .800_r8*rxt(375)*y(143)
            mat(355) = .800_r8*rxt(375)*y(6)
            mat(335) = -(rxt(338)*y(6) + rxt(339)*y(130))
            mat(1213) = -rxt(338)*y(140)
            mat(1078) = -rxt(339)*y(140)
            mat(1340) = rxt(337)*y(58) + rxt(340)*y(59)
            mat(185) = rxt(337)*y(129)
            mat(116) = rxt(340)*y(129)
            mat(115) = -(rxt(340)*y(129))
            mat(1312) = -rxt(340)*y(59)
            mat(1057) = rxt(339)*y(140)
            mat(334) = rxt(339)*y(130)
            mat(33) = -(rxt(385)*y(129))
            mat(1300) = -rxt(385)*y(73)
            mat(38) = -(rxt(389)*y(129))
            mat(1301) = -rxt(389)*y(74)
            mat(1301) = mat(1301) + .250_r8*rxt(385)*y(73)
            mat(34) = .250_r8*rxt(385)*y(129)
            mat(246) = -(rxt(386)*y(6) + rxt(387)*y(130))
            mat(1211) = -rxt(386)*y(146)
            mat(1071) = -rxt(387)*y(146)
            mat(1330) = .700_r8*rxt(385)*y(73) + rxt(388)*y(75)
            mat(35) = .700_r8*rxt(385)*y(129)
            mat(161) = rxt(388)*y(129)
            mat(160) = -(rxt(388)*y(129))
            mat(1320) = -rxt(388)*y(75)
            mat(1062) = rxt(387)*y(146)
            mat(245) = rxt(387)*y(130)
            mat(61) = -(rxt(390)*y(7))
            mat(1259) = -rxt(390)*y(76)
            mat(1304) = rxt(389)*y(74)
            mat(39) = rxt(389)*y(129)
            mat(540) = -(rxt(394)*y(6) + rxt(395)*y(130))
            mat(1227) = -rxt(394)*y(147)
            mat(1091) = -rxt(395)*y(147)
            mat(1356) = rxt(396)*y(78) + rxt(391)*y(77)
            mat(1403) = rxt(393)*y(77)
            mat(210) = rxt(396)*y(129)
            mat(304) = rxt(391)*y(129) + rxt(393)*y(8)
            mat(208) = -(rxt(396)*y(129))
            mat(1325) = -rxt(396)*y(78)
            mat(1067) = rxt(395)*y(147)
            mat(538) = rxt(395)*y(130)
            mat(1212) = .900_r8*rxt(386)*y(146)
            mat(1263) = .700_r8*rxt(390)*y(76)
            mat(247) = .900_r8*rxt(386)*y(6)
            mat(62) = .700_r8*rxt(390)*y(7)
            mat(375) = -(rxt(309)*y(129))
            mat(1343) = -rxt(309)*y(44)
            mat(1216) = .450_r8*rxt(386)*y(146) + .250_r8*rxt(378)*y(145)
            mat(1343) = mat(1343) + .200_r8*rxt(308)*y(43) + .650_r8*rxt(286)*y(98)
            mat(1399) = .250_r8*rxt(379)*y(145)
            mat(856) = .100_r8*rxt(381)*y(145)
            mat(778) = .250_r8*rxt(382)*y(145)
            mat(248) = .450_r8*rxt(386)*y(6)
            mat(509) = .200_r8*rxt(308)*y(129)
            mat(672) = .250_r8*rxt(378)*y(6) + .250_r8*rxt(379)*y(8) + .100_r8*rxt(381)                       *y(13) + &
            .250_r8*rxt(382)*y(133)
            mat(92) = .650_r8*rxt(286)*y(129)
            mat(697) = -(rxt(362)*y(6) + rxt(363)*y(8) + rxt(364)*y(130) + rxt(366)*y(13)                       + rxt(367)*y(133))
            mat(1236) = -rxt(362)*y(144)
            mat(1414) = -rxt(363)*y(144)
            mat(1101) = -rxt(364)*y(144)
            mat(867) = -rxt(366)*y(144)
            mat(785) = -rxt(367)*y(144)
            mat(1369) = rxt(359)*y(65) + .200_r8*rxt(365)*y(72)
            mat(499) = rxt(359)*y(129)
            mat(275) = .200_r8*rxt(365)*y(129)
        END SUBROUTINE nlnmat05

        SUBROUTINE nlnmat06(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(740) = -(rxt(335)*y(129) + rxt(336)*y(1))
            mat(1371) = -rxt(335)*y(60)
            mat(1007) = -rxt(336)*y(60)
            mat(1007) = mat(1007) + .200_r8*rxt(360)*y(65) + rxt(392)*y(77)
            mat(1238) = rxt(394)*y(147) + .320_r8*rxt(362)*y(144) + .039_r8*rxt(368)                       *y(69)
            mat(1416) = .350_r8*rxt(363)*y(144) + .039_r8*rxt(369)*y(69)
            mat(869) = .260_r8*rxt(366)*y(144)
            mat(1103) = .039_r8*rxt(370)*y(69)
            mat(500) = .200_r8*rxt(360)*y(1)
            mat(787) = .350_r8*rxt(367)*y(144)
            mat(543) = rxt(394)*y(6)
            mat(699) = .320_r8*rxt(362)*y(6) + .350_r8*rxt(363)*y(8) + .260_r8*rxt(366)                       *y(13) + &
            .350_r8*rxt(367)*y(133)
            mat(306) = rxt(392)*y(1)
            mat(576) = .039_r8*rxt(368)*y(6) + .039_r8*rxt(369)*y(8) + .039_r8*rxt(370)                       *y(130)
            mat(637) = -(rxt(341)*y(129) + rxt(342)*y(1))
            mat(1365) = -rxt(341)*y(61)
            mat(1002) = -rxt(342)*y(61)
            mat(1002) = mat(1002) + .400_r8*rxt(360)*y(65) + rxt(392)*y(77)
            mat(1233) = rxt(394)*y(147) + .230_r8*rxt(362)*y(144) + .167_r8*rxt(368)                       *y(69)
            mat(1411) = .250_r8*rxt(363)*y(144) + .167_r8*rxt(369)*y(69)
            mat(864) = .190_r8*rxt(366)*y(144)
            mat(1097) = .167_r8*rxt(370)*y(69)
            mat(498) = .400_r8*rxt(360)*y(1)
            mat(782) = .250_r8*rxt(367)*y(144)
            mat(542) = rxt(394)*y(6)
            mat(694) = .230_r8*rxt(362)*y(6) + .250_r8*rxt(363)*y(8) + .190_r8*rxt(366)                       *y(13) + &
            .250_r8*rxt(367)*y(133)
            mat(305) = rxt(392)*y(1)
            mat(574) = .167_r8*rxt(368)*y(6) + .167_r8*rxt(369)*y(8) + .167_r8*rxt(370)                       *y(130)
            mat(721) = -((rxt(343) + rxt(344)) * y(6) + rxt(345)*y(8) + rxt(346)*y(130)                       + rxt(347)*y(13) + &
            rxt(348)*y(133))
            mat(1237) = -(rxt(343) + rxt(344)) * y(142)
            mat(1415) = -rxt(345)*y(142)
            mat(1102) = -rxt(346)*y(142)
            mat(868) = -rxt(347)*y(142)
            mat(786) = -rxt(348)*y(142)
            mat(1370) = rxt(335)*y(60) + .500_r8*rxt(341)*y(61) + .200_r8*rxt(349)*y(62)
            mat(739) = rxt(335)*y(129)
            mat(639) = .500_r8*rxt(341)*y(129)
            mat(121) = .200_r8*rxt(349)*y(129)
            mat(120) = -(rxt(349)*y(129))
            mat(1313) = -rxt(349)*y(62)
            mat(1058) = rxt(346)*y(142)
            mat(713) = rxt(346)*y(130)
            mat(760) = -(rxt(350)*y(6) + rxt(351)*y(8) + rxt(352)*y(130) + rxt(353)*y(13)                       + rxt(354)*y(133) &
            + 4._r8*rxt(355)*y(141) + rxt(356)*y(7))
            mat(1239) = -rxt(350)*y(141)
            mat(1417) = -rxt(351)*y(141)
            mat(1104) = -rxt(352)*y(141)
            mat(870) = -rxt(353)*y(141)
            mat(788) = -rxt(354)*y(141)
            mat(1274) = -rxt(356)*y(141)
            mat(1008) = .200_r8*rxt(360)*y(65)
            mat(1372) = .500_r8*rxt(341)*y(61) + .500_r8*rxt(349)*y(62)
            mat(501) = .200_r8*rxt(360)*y(1)
            mat(640) = .500_r8*rxt(341)*y(129)
            mat(122) = .500_r8*rxt(349)*y(129)
            mat(462) = -(rxt(295)*y(6) + rxt(296)*y(130) + rxt(297)*y(13) + 4._r8*rxt(298)                       *y(132))
            mat(1222) = -rxt(295)*y(132)
            mat(1086) = -rxt(296)*y(132)
            mat(857) = -rxt(297)*y(132)
            mat(1349) = rxt(287)*y(38) + .500_r8*rxt(299)*y(39)
            mat(1133) = rxt(285)*y(38)
            mat(85) = rxt(287)*y(129) + rxt(285)*y(127)
            mat(126) = .500_r8*rxt(299)*y(129)
            mat(125) = -(rxt(299)*y(129))
            mat(1314) = -rxt(299)*y(39)
            mat(1059) = rxt(296)*y(132)
            mat(460) = rxt(296)*y(130)
            mat(303) = -(rxt(391)*y(129) + rxt(392)*y(1) + rxt(393)*y(8))
            mat(1336) = -rxt(391)*y(77)
            mat(988) = -rxt(392)*y(77)
            mat(1398) = -rxt(393)*y(77)
            mat(29) = -(rxt(320)*y(129))
            mat(1299) = -rxt(320)*y(49)
            mat(517) = -(rxt(316)*y(6) + rxt(317)*y(130) + rxt(318)*y(13))
            mat(1225) = -rxt(316)*y(136)
            mat(1089) = -rxt(317)*y(136)
            mat(859) = -rxt(318)*y(136)
            mat(1354) = rxt(320)*y(49) + rxt(319)*y(50)
            mat(30) = rxt(320)*y(129)
            mat(168) = rxt(319)*y(129)
            mat(166) = -(rxt(319)*y(129))
            mat(1321) = -rxt(319)*y(50)
            mat(1063) = rxt(317)*y(136)
            mat(515) = rxt(317)*y(130)
            mat(369) = -(rxt(324)*y(129))
            mat(1342) = -rxt(324)*y(51)
            mat(1215) = .500_r8*rxt(334)*y(139) + .250_r8*rxt(375)*y(143)                       + .100_r8*rxt(394)*y(147) + &
            .820_r8*rxt(316)*y(136)
            mat(855) = .820_r8*rxt(318)*y(136)
            mat(109) = .500_r8*rxt(334)*y(6)
            mat(359) = .250_r8*rxt(375)*y(6)
            mat(539) = .100_r8*rxt(394)*y(6)
            mat(516) = .820_r8*rxt(316)*y(6) + .820_r8*rxt(318)*y(13)
            mat(172) = -(rxt(328)*y(129))
            mat(1322) = -rxt(328)*y(55)
            mat(1064) = rxt(326)*y(138)
            mat(622) = rxt(326)*y(130)
            mat(268) = -(rxt(277)*y(129))
            mat(1333) = -rxt(277)*y(15)
            mat(853) = 2.000_r8*rxt(276)*y(13) + .250_r8*rxt(366)*y(144)                       + .250_r8*rxt(347)*y(142) + &
            .300_r8*rxt(297)*y(132)                       + .500_r8*rxt(327)*y(138) + .300_r8*rxt(381)*y(145)
            mat(690) = .250_r8*rxt(366)*y(13)
            mat(714) = .250_r8*rxt(347)*y(13)
            mat(461) = .300_r8*rxt(297)*y(13)
            mat(623) = .500_r8*rxt(327)*y(13)
            mat(671) = .300_r8*rxt(381)*y(13)
            mat(75) = -(rxt(310)*y(129))
            mat(1306) = -rxt(310)*y(42)
            mat(850) = .200_r8*rxt(297)*y(132)
            mat(459) = .200_r8*rxt(297)*y(13) + .800_r8*rxt(298)*y(132)
            mat(510) = -(rxt(308)*y(129))
            mat(1353) = -rxt(308)*y(43)
            mat(898) = rxt(291)*y(135)
            mat(1224) = .530_r8*rxt(343)*y(142) + .250_r8*rxt(378)*y(145)
            mat(1401) = .530_r8*rxt(345)*y(142) + .250_r8*rxt(379)*y(145)
            mat(858) = .260_r8*rxt(347)*y(142) + .100_r8*rxt(381)*y(145)
            mat(779) = .530_r8*rxt(348)*y(142) + .250_r8*rxt(382)*y(145)
            mat(715) = .530_r8*rxt(343)*y(6) + .530_r8*rxt(345)*y(8) + .260_r8*rxt(347)                       *y(13) + &
            .530_r8*rxt(348)*y(133)
            mat(190) = rxt(291)*y(3)
            mat(673) = .250_r8*rxt(378)*y(6) + .250_r8*rxt(379)*y(8) + .100_r8*rxt(381)                       *y(13) + &
            .250_r8*rxt(382)*y(133)
            mat(616) = -(rxt(329)*y(129))
            mat(1363) = -rxt(329)*y(53)
            mat(1231) = .220_r8*rxt(343)*y(142) + .250_r8*rxt(378)*y(145)
            mat(1363) = mat(1363) + .500_r8*rxt(323)*y(52) + .500_r8*rxt(358)*y(63)
            mat(1409) = .220_r8*rxt(345)*y(142) + .250_r8*rxt(379)*y(145)
            mat(862) = .230_r8*rxt(347)*y(142) + .200_r8*rxt(327)*y(138)                       + .100_r8*rxt(381)*y(145)
            mat(263) = .500_r8*rxt(323)*y(129)
            mat(781) = .220_r8*rxt(348)*y(142) + .250_r8*rxt(382)*y(145)
            mat(289) = .500_r8*rxt(358)*y(129)
            mat(718) = .220_r8*rxt(343)*y(6) + .220_r8*rxt(345)*y(8) + .230_r8*rxt(347)                       *y(13) + &
            .220_r8*rxt(348)*y(133)
            mat(624) = .200_r8*rxt(327)*y(13)
            mat(675) = .250_r8*rxt(378)*y(6) + .250_r8*rxt(379)*y(8) + .100_r8*rxt(381)                       *y(13) + &
            .250_r8*rxt(382)*y(133)
            mat(388) = -(rxt(289)*y(6) + rxt(290)*y(130))
            mat(1217) = -rxt(289)*y(134)
            mat(1082) = -rxt(290)*y(134)
            mat(1345) = rxt(288)*y(37)
            mat(235) = rxt(288)*y(129)
            mat(189) = -(rxt(291)*y(3))
            mat(888) = -rxt(291)*y(135)
            mat(1209) = .750_r8*rxt(289)*y(134)
            mat(387) = .750_r8*rxt(289)*y(6)
            mat(1056) = rxt(290)*y(134)
            mat(386) = rxt(290)*y(130)
            mat(139) = -(rxt(374)*y(129))
            mat(1316) = -rxt(374)*y(68)
            mat(1205) = .370_r8*rxt(362)*y(144)
            mat(1316) = mat(1316) + rxt(372)*y(70)
            mat(1396) = .400_r8*rxt(363)*y(144) + rxt(373)*y(70)
            mat(851) = .300_r8*rxt(366)*y(144)
            mat(774) = .400_r8*rxt(367)*y(144)
            mat(689) = .370_r8*rxt(362)*y(6) + .400_r8*rxt(363)*y(8) + .300_r8*rxt(366)                       *y(13) + &
            .400_r8*rxt(367)*y(133)
            mat(529) = rxt(372)*y(129) + rxt(373)*y(8)
            mat(625) = -(rxt(325)*y(6) + rxt(326)*y(130) + rxt(327)*y(13))
            mat(1232) = -rxt(325)*y(138)
            mat(1096) = -rxt(326)*y(138)
            mat(863) = -rxt(327)*y(138)
            mat(1364) = rxt(324)*y(51) + rxt(328)*y(55)
            mat(370) = rxt(324)*y(129)
            mat(173) = rxt(328)*y(129)
            mat(662) = -(rxt(330)*y(129) + rxt(331)*y(8))
            mat(1367) = -rxt(330)*y(54)
            mat(1412) = -rxt(331)*y(54)
            mat(1003) = .950_r8*rxt(336)*y(60) + .800_r8*rxt(342)*y(61)
            mat(1234) = .450_r8*rxt(386)*y(146) + .250_r8*rxt(343)*y(142)                       + .250_r8*rxt(378)*y(145)
            mat(1367) = mat(1367) + rxt(332)*y(64) + rxt(329)*y(53)
            mat(1412) = mat(1412) + .250_r8*rxt(345)*y(142) + .250_r8*rxt(379)*y(145)
            mat(865) = .240_r8*rxt(347)*y(142) + .500_r8*rxt(327)*y(138)                       + .100_r8*rxt(381)*y(145)
            mat(783) = .250_r8*rxt(348)*y(142) + .250_r8*rxt(382)*y(145)
            mat(151) = rxt(332)*y(129)
            mat(249) = .450_r8*rxt(386)*y(6)
            mat(738) = .950_r8*rxt(336)*y(1)
            mat(638) = .800_r8*rxt(342)*y(1)
            mat(719) = .250_r8*rxt(343)*y(6) + .250_r8*rxt(345)*y(8) + .240_r8*rxt(347)                       *y(13) + &
            .250_r8*rxt(348)*y(133)
            mat(617) = rxt(329)*y(129)
            mat(626) = .500_r8*rxt(327)*y(13)
            mat(676) = .250_r8*rxt(378)*y(6) + .250_r8*rxt(379)*y(8) + .100_r8*rxt(381)                       *y(13) + &
            .250_r8*rxt(382)*y(133)
            mat(572) = -(rxt(368)*y(6) + rxt(369)*y(8) + rxt(370)*y(130))
            mat(1228) = -rxt(368)*y(69)
            mat(1405) = -rxt(369)*y(69)
            mat(1092) = -rxt(370)*y(69)
            mat(1405) = mat(1405) + rxt(361)*y(65)
            mat(495) = rxt(361)*y(8)
        END SUBROUTINE nlnmat06

        SUBROUTINE nlnmat07(mat, y, rxt)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(530) = -(rxt(372)*y(129) + rxt(373)*y(8))
            mat(1355) = -rxt(372)*y(70)
            mat(1402) = -rxt(373)*y(70)
            mat(1226) = .080_r8*rxt(362)*y(144) + .800_r8*rxt(344)*y(142)                       + .794_r8*rxt(368)*y(69)
            mat(1402) = mat(1402) + .794_r8*rxt(369)*y(69)
            mat(1090) = .794_r8*rxt(370)*y(69)
            mat(692) = .080_r8*rxt(362)*y(6)
            mat(716) = .800_r8*rxt(344)*y(6)
            mat(571) = .794_r8*rxt(368)*y(6) + .794_r8*rxt(369)*y(8) + .794_r8*rxt(370)                       *y(130)
            mat(677) = -(rxt(378)*y(6) + rxt(379)*y(8) + rxt(380)*y(130) + rxt(381)*y(13)                       + rxt(382)*y(133))
            mat(1235) = -rxt(378)*y(145)
            mat(1413) = -rxt(379)*y(145)
            mat(1100) = -rxt(380)*y(145)
            mat(866) = -rxt(381)*y(145)
            mat(784) = -rxt(382)*y(145)
            mat(1368) = rxt(374)*y(68) + rxt(383)*y(71) + .800_r8*rxt(365)*y(72)
            mat(140) = rxt(374)*y(129)
            mat(131) = rxt(383)*y(129)
            mat(274) = .800_r8*rxt(365)*y(129)
            mat(130) = -((rxt(383) + rxt(384)) * y(129))
            mat(1315) = -(rxt(383) + rxt(384)) * y(71)
            mat(1060) = rxt(370)*y(69) + rxt(380)*y(145)
            mat(570) = rxt(370)*y(130)
            mat(670) = rxt(380)*y(130)
            mat(272) = -(rxt(365)*y(129))
            mat(1334) = -rxt(365)*y(72)
            mat(1074) = rxt(364)*y(144)
            mat(691) = rxt(364)*y(130)
            mat(90) = -(rxt(283)*y(127) + rxt(286)*y(129))
            mat(1127) = -rxt(283)*y(98)
            mat(1309) = -rxt(286)*y(98)
            mat(241) = -(rxt(279)*y(129))
            mat(1329) = -rxt(279)*y(99)
            mat(987) = .500_r8*rxt(293)*y(37)
            mat(1210) = rxt(281)*y(131)
            mat(1329) = mat(1329) + .350_r8*rxt(286)*y(98)
            mat(1070) = rxt(282)*y(131)
            mat(234) = .500_r8*rxt(293)*y(1)
            mat(91) = .350_r8*rxt(286)*y(129)
            mat(179) = rxt(281)*y(6) + rxt(282)*y(130)
            mat(178) = -(rxt(281)*y(6) + rxt(282)*y(130))
            mat(1207) = -rxt(281)*y(131)
            mat(1065) = -rxt(282)*y(131)
            mat(1486) = rxt(272)*y(130)
            mat(1065) = mat(1065) + rxt(272)*y(16)
            mat(44) = -(rxt(154)*y(157))
            mat(958) = -rxt(154)*y(100)
            mat(65) = -(rxt(155)*y(157))
            mat(961) = -rxt(155)*y(101)
            mat(648) = rxt(251)*y(103)
            mat(1438) = rxt(253)*y(103)
            mat(1461) = rxt(250)*y(103)
            mat(432) = rxt(251)*y(18) + rxt(253)*y(9) + rxt(250)*y(158)
            mat(433) = -(rxt(250)*y(158) + rxt(251)*y(18) + rxt(253)*y(9))
            mat(1463) = -rxt(250)*y(103)
            mat(649) = -rxt(251)*y(103)
            mat(1439) = -rxt(253)*y(103)
            mat(962) = 2.000_r8*rxt(154)*y(100) + rxt(155)*y(101)
            mat(45) = 2.000_r8*rxt(154)*y(157)
            mat(66) = rxt(155)*y(157)
            mat(552) = -(rxt(413)*y(129))
            mat(1357) = -rxt(413)*y(104)
            mat(995) = rxt(408)*y(108)
            mat(899) = rxt(407)*y(108)
            mat(1269) = rxt(409)*y(108)
            mat(1357) = mat(1357) + (rxt(415)+.500_r8*rxt(416))*y(105) + rxt(402)*y(106)                       + rxt(406)*y(108)
            mat(1404) = rxt(417)*y(105)
            mat(1034) = rxt(410)*y(108)
            mat(135) = rxt(412)*y(108)
            mat(1184) = rxt(411)*y(108)
            mat(97) = (rxt(415)+.500_r8*rxt(416))*y(129) + rxt(417)*y(8)
            mat(144) = rxt(402)*y(129)
            mat(804) = rxt(408)*y(1) + rxt(407)*y(3) + rxt(409)*y(7) + rxt(406)*y(129)                       + rxt(410)*y(24) + &
            rxt(412)*y(25) + rxt(411)*y(31)
            mat(96) = -((rxt(415) + rxt(416)) * y(129) + rxt(417)*y(8))
            mat(1310) = -(rxt(415) + rxt(416)) * y(105)
            mat(1394) = -rxt(417)*y(105)
            mat(142) = -(rxt(401)*y(2) + rxt(402)*y(129))
            mat(919) = -rxt(401)*y(106)
            mat(1317) = -rxt(402)*y(106)
            mat(379) = -(rxt(403)*y(129) + rxt(404)*y(3) + rxt(405)*y(1))
            mat(1344) = -rxt(403)*y(107)
            mat(893) = -rxt(404)*y(107)
            mat(990) = -rxt(405)*y(107)
            mat(805) = -(rxt(406)*y(129) + rxt(407)*y(3) + rxt(408)*y(1) + rxt(409)*y(7)                       + rxt(410)*y(24) + &
            rxt(411)*y(31) + rxt(412)*y(25))
            mat(1374) = -rxt(406)*y(108)
            mat(901) = -rxt(407)*y(108)
            mat(1010) = -rxt(408)*y(108)
            mat(1276) = -rxt(409)*y(108)
            mat(1036) = -rxt(410)*y(108)
            mat(1185) = -rxt(411)*y(108)
            mat(136) = -rxt(412)*y(108)
            mat(1010) = mat(1010) + rxt(405)*y(107)
            mat(938) = rxt(401)*y(106)
            mat(901) = mat(901) + rxt(404)*y(107)
            mat(1374) = mat(1374) + rxt(403)*y(107)
            mat(146) = rxt(401)*y(2)
            mat(380) = rxt(405)*y(1) + rxt(404)*y(3) + rxt(403)*y(129)
            mat(80) = -(rxt(414)*y(158))
            mat(1462) = -rxt(414)*y(109)
            mat(1307) = rxt(413)*y(104)
            mat(551) = rxt(413)*y(129)
            mat(1460) = rxt(414)*y(109)
            mat(79) = rxt(414)*y(158)
        END SUBROUTINE nlnmat07

        SUBROUTINE nlnmat_finit(mat, lmat, dti)
            USE chem_mods, ONLY: nzcnt
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: dti
            REAL(KIND=r8), intent(in) :: lmat(nzcnt)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            !----------------------------------------------
            ! ... local variables
            !----------------------------------------------
            !----------------------------------------------
            ! ... complete matrix entries implicit species
            !----------------------------------------------
            mat(1) = lmat( 1)
            mat(2) = lmat( 2)
            mat(3) = lmat( 3)
            mat(4) = lmat( 4)
            mat(5) = lmat( 5)
            mat(6) = lmat( 6)
            mat(7) = lmat( 7)
            mat(8) = lmat( 8)
            mat(9) = lmat( 9)
            mat(10) = lmat( 10)
            mat(11) = lmat( 11)
            mat(12) = lmat( 12)
            mat(13) = lmat( 13)
            mat(14) = lmat( 14)
            mat(15) = lmat( 15)
            mat(16) = lmat( 16)
            mat(17) = mat( 17) + lmat( 17)
            mat(20) = lmat( 20)
            mat(21) = lmat( 21)
            mat(22) = lmat( 22)
            mat(23) = mat( 23) + lmat( 23)
            mat(26) = mat( 26) + lmat( 26)
            mat(29) = mat( 29) + lmat( 29)
            mat(33) = mat( 33) + lmat( 33)
            mat(38) = mat( 38) + lmat( 38)
            mat(41) = lmat( 41)
            mat(42) = lmat( 42)
            mat(43) = lmat( 43)
            mat(44) = mat( 44) + lmat( 44)
            mat(45) = mat( 45) + lmat( 45)
            mat(47) = lmat( 47)
            mat(48) = lmat( 48)
            mat(49) = lmat( 49)
            mat(50) = mat( 50) + lmat( 50)
            mat(51) = mat( 51) + lmat( 51)
            mat(52) = mat( 52) + lmat( 52)
            mat(53) = mat( 53) + lmat( 53)
            mat(54) = lmat( 54)
            mat(55) = lmat( 55)
            mat(56) = lmat( 56)
            mat(57) = mat( 57) + lmat( 57)
            mat(61) = mat( 61) + lmat( 61)
            mat(65) = mat( 65) + lmat( 65)
            mat(66) = mat( 66) + lmat( 66)
            mat(68) = mat( 68) + lmat( 68)
            mat(69) = lmat( 69)
            mat(70) = lmat( 70)
            mat(71) = lmat( 71)
            mat(72) = lmat( 72)
            mat(73) = lmat( 73)
            mat(74) = lmat( 74)
            mat(75) = mat( 75) + lmat( 75)
            mat(80) = mat( 80) + lmat( 80)
            mat(81) = lmat( 81)
            mat(82) = lmat( 82)
            mat(84) = mat( 84) + lmat( 84)
            mat(90) = mat( 90) + lmat( 90)
            mat(96) = mat( 96) + lmat( 96)
            mat(102) = lmat( 102)
            mat(103) = lmat( 103)
            mat(104) = lmat( 104)
            mat(105) = lmat( 105)
            mat(106) = lmat( 106)
            mat(107) = lmat( 107)
            mat(108) = mat( 108) + lmat( 108)
            mat(115) = mat( 115) + lmat( 115)
            mat(117) = lmat( 117)
            mat(118) = lmat( 118)
            mat(119) = mat( 119) + lmat( 119)
            mat(120) = mat( 120) + lmat( 120)
            mat(125) = mat( 125) + lmat( 125)
            mat(127) = mat( 127) + lmat( 127)
            mat(128) = lmat( 128)
            mat(129) = mat( 129) + lmat( 129)
            mat(130) = mat( 130) + lmat( 130)
            mat(132) = mat( 132) + lmat( 132)
            mat(134) = mat( 134) + lmat( 134)
            mat(137) = lmat( 137)
            mat(138) = mat( 138) + lmat( 138)
            mat(139) = mat( 139) + lmat( 139)
            mat(142) = mat( 142) + lmat( 142)
            mat(143) = lmat( 143)
            mat(145) = mat( 145) + lmat( 145)
            mat(150) = mat( 150) + lmat( 150)
            mat(154) = mat( 154) + lmat( 154)
            mat(156) = lmat( 156)
            mat(157) = mat( 157) + lmat( 157)
            mat(159) = mat( 159) + lmat( 159)
            mat(160) = mat( 160) + lmat( 160)
            mat(162) = lmat( 162)
            mat(163) = lmat( 163)
            mat(164) = lmat( 164)
            mat(165) = mat( 165) + lmat( 165)
            mat(166) = mat( 166) + lmat( 166)
            mat(167) = lmat( 167)
            mat(169) = lmat( 169)
            mat(170) = mat( 170) + lmat( 170)
            mat(172) = mat( 172) + lmat( 172)
            mat(174) = lmat( 174)
            mat(175) = mat( 175) + lmat( 175)
            mat(177) = lmat( 177)
            mat(178) = mat( 178) + lmat( 178)
            mat(180) = mat( 180) + lmat( 180)
            mat(183) = lmat( 183)
            mat(184) = mat( 184) + lmat( 184)
            mat(186) = lmat( 186)
            mat(187) = lmat( 187)
            mat(189) = mat( 189) + lmat( 189)
            mat(192) = mat( 192) + lmat( 192)
            mat(193) = lmat( 193)
            mat(194) = mat( 194) + lmat( 194)
            mat(195) = lmat( 195)
            mat(196) = lmat( 196)
            mat(197) = lmat( 197)
            mat(199) = mat( 199) + lmat( 199)
            mat(201) = mat( 201) + lmat( 201)
            mat(208) = mat( 208) + lmat( 208)
            mat(209) = lmat( 209)
            mat(211) = lmat( 211)
            mat(212) = lmat( 212)
            mat(213) = lmat( 213)
            mat(214) = mat( 214) + lmat( 214)
            mat(215) = mat( 215) + lmat( 215)
            mat(217) = lmat( 217)
            mat(218) = mat( 218) + lmat( 218)
            mat(219) = mat( 219) + lmat( 219)
            mat(220) = lmat( 220)
            mat(222) = mat( 222) + lmat( 222)
            mat(227) = mat( 227) + lmat( 227)
            mat(229) = lmat( 229)
            mat(230) = mat( 230) + lmat( 230)
            mat(233) = mat( 233) + lmat( 233)
            mat(241) = mat( 241) + lmat( 241)
            mat(246) = mat( 246) + lmat( 246)
            mat(254) = lmat( 254)
            mat(255) = lmat( 255)
            mat(256) = lmat( 256)
            mat(257) = lmat( 257)
            mat(258) = lmat( 258)
            mat(259) = lmat( 259)
            mat(260) = mat( 260) + lmat( 260)
            mat(262) = lmat( 262)
            mat(264) = lmat( 264)
            mat(265) = mat( 265) + lmat( 265)
            mat(267) = lmat( 267)
            mat(268) = mat( 268) + lmat( 268)
            mat(272) = mat( 272) + lmat( 272)
            mat(273) = lmat( 273)
            mat(276) = lmat( 276)
            mat(277) = lmat( 277)
            mat(279) = lmat( 279)
            mat(280) = mat( 280) + lmat( 280)
            mat(281) = lmat( 281)
            mat(282) = lmat( 282)
            mat(284) = mat( 284) + lmat( 284)
            mat(285) = lmat( 285)
            mat(286) = mat( 286) + lmat( 286)
            mat(287) = lmat( 287)
            mat(288) = mat( 288) + lmat( 288)
            mat(290) = lmat( 290)
            mat(292) = lmat( 292)
            mat(296) = mat( 296) + lmat( 296)
            mat(297) = mat( 297) + lmat( 297)
            mat(298) = lmat( 298)
            mat(299) = lmat( 299)
            mat(300) = lmat( 300)
            mat(303) = mat( 303) + lmat( 303)
            mat(312) = mat( 312) + lmat( 312)
            mat(317) = mat( 317) + lmat( 317)
            mat(319) = mat( 319) + lmat( 319)
            mat(323) = lmat( 323)
            mat(324) = mat( 324) + lmat( 324)
            mat(327) = lmat( 327)
            mat(329) = lmat( 329)
            mat(331) = lmat( 331)
            mat(332) = mat( 332) + lmat( 332)
            mat(333) = lmat( 333)
            mat(335) = mat( 335) + lmat( 335)
            mat(344) = mat( 344) + lmat( 344)
            mat(358) = mat( 358) + lmat( 358)
            mat(369) = mat( 369) + lmat( 369)
            mat(371) = lmat( 371)
            mat(372) = lmat( 372)
            mat(375) = mat( 375) + lmat( 375)
            mat(376) = mat( 376) + lmat( 376)
            mat(377) = mat( 377) + lmat( 377)
            mat(379) = mat( 379) + lmat( 379)
            mat(388) = mat( 388) + lmat( 388)
            mat(397) = mat( 397) + lmat( 397)
            mat(399) = lmat( 399)
            mat(403) = mat( 403) + lmat( 403)
            mat(405) = mat( 405) + lmat( 405)
            mat(406) = mat( 406) + lmat( 406)
            mat(412) = mat( 412) + lmat( 412)
            mat(414) = mat( 414) + lmat( 414)
            mat(425) = mat( 425) + lmat( 425)
            mat(432) = mat( 432) + lmat( 432)
            mat(433) = mat( 433) + lmat( 433)
            mat(435) = lmat( 435)
            mat(442) = mat( 442) + lmat( 442)
            mat(452) = mat( 452) + lmat( 452)
            mat(453) = mat( 453) + lmat( 453)
            mat(456) = lmat( 456)
            mat(462) = mat( 462) + lmat( 462)
            mat(471) = lmat( 471)
            mat(475) = lmat( 475)
            mat(476) = mat( 476) + lmat( 476)
            mat(486) = mat( 486) + lmat( 486)
            mat(490) = mat( 490) + lmat( 490)
            mat(491) = mat( 491) + lmat( 491)
            mat(494) = mat( 494) + lmat( 494)
            mat(510) = mat( 510) + lmat( 510)
            mat(511) = lmat( 511)
            mat(512) = mat( 512) + lmat( 512)
            mat(514) = mat( 514) + lmat( 514)
            mat(517) = mat( 517) + lmat( 517)
            mat(530) = mat( 530) + lmat( 530)
            mat(531) = lmat( 531)
            mat(533) = mat( 533) + lmat( 533)
            mat(534) = mat( 534) + lmat( 534)
            mat(537) = lmat( 537)
            mat(540) = mat( 540) + lmat( 540)
            mat(552) = mat( 552) + lmat( 552)
            mat(553) = lmat( 553)
            mat(554) = lmat( 554)
            mat(559) = mat( 559) + lmat( 559)
            mat(560) = mat( 560) + lmat( 560)
            mat(563) = mat( 563) + lmat( 563)
            mat(564) = mat( 564) + lmat( 564)
            mat(565) = lmat( 565)
            mat(567) = mat( 567) + lmat( 567)
            mat(568) = mat( 568) + lmat( 568)
            mat(572) = mat( 572) + lmat( 572)
            mat(587) = mat( 587) + lmat( 587)
            mat(602) = mat( 602) + lmat( 602)
            mat(606) = lmat( 606)
            mat(607) = mat( 607) + lmat( 607)
            mat(609) = lmat( 609)
            mat(610) = lmat( 610)
            mat(616) = mat( 616) + lmat( 616)
            mat(618) = lmat( 618)
            mat(619) = mat( 619) + lmat( 619)
            mat(621) = lmat( 621)
            mat(625) = mat( 625) + lmat( 625)
            mat(636) = mat( 636) + lmat( 636)
            mat(637) = mat( 637) + lmat( 637)
            mat(640) = mat( 640) + lmat( 640)
            mat(641) = lmat( 641)
            mat(643) = mat( 643) + lmat( 643)
            mat(647) = mat( 647) + lmat( 647)
            mat(650) = mat( 650) + lmat( 650)
            mat(661) = mat( 661) + lmat( 661)
            mat(662) = mat( 662) + lmat( 662)
            mat(663) = mat( 663) + lmat( 663)
            mat(664) = lmat( 664)
            mat(677) = mat( 677) + lmat( 677)
            mat(697) = mat( 697) + lmat( 697)
            mat(721) = mat( 721) + lmat( 721)
            mat(734) = lmat( 734)
            mat(735) = mat( 735) + lmat( 735)
            mat(740) = mat( 740) + lmat( 740)
            mat(742) = lmat( 742)
            mat(743) = lmat( 743)
            mat(760) = mat( 760) + lmat( 760)
            mat(789) = mat( 789) + lmat( 789)
            mat(803) = lmat( 803)
            mat(805) = mat( 805) + lmat( 805)
            mat(808) = mat( 808) + lmat( 808)
            mat(824) = mat( 824) + lmat( 824)
            mat(829) = mat( 829) + lmat( 829)
            mat(830) = lmat( 830)
            mat(839) = mat( 839) + lmat( 839)
            mat(872) = mat( 872) + lmat( 872)
            mat(891) = mat( 891) + lmat( 891)
            mat(894) = mat( 894) + lmat( 894)
            mat(896) = lmat( 896)
            mat(903) = mat( 903) + lmat( 903)
            mat(904) = mat( 904) + lmat( 904)
            mat(905) = mat( 905) + lmat( 905)
            mat(923) = mat( 923) + lmat( 923)
            mat(930) = lmat( 930)
            mat(943) = mat( 943) + lmat( 943)
            mat(958) = mat( 958) + lmat( 958)
            mat(961) = mat( 961) + lmat( 961)
            mat(962) = mat( 962) + lmat( 962)
            mat(964) = mat( 964) + lmat( 964)
            mat(966) = mat( 966) + lmat( 966)
            mat(967) = lmat( 967)
            mat(968) = mat( 968) + lmat( 968)
            mat(969) = mat( 969) + lmat( 969)
            mat(970) = mat( 970) + lmat( 970)
            mat(973) = lmat( 973)
            mat(974) = mat( 974) + lmat( 974)
            mat(975) = mat( 975) + lmat( 975)
            mat(977) = lmat( 977)
            mat(979) = mat( 979) + lmat( 979)
            mat(983) = lmat( 983)
            mat(984) = mat( 984) + lmat( 984)
            mat(1013) = mat(1013) + lmat(1013)
            mat(1014) = mat(1014) + lmat(1014)
            mat(1015) = mat(1015) + lmat(1015)
            mat(1016) = mat(1016) + lmat(1016)
            mat(1041) = mat(1041) + lmat(1041)
            mat(1044) = mat(1044) + lmat(1044)
            mat(1046) = mat(1046) + lmat(1046)
            mat(1075) = mat(1075) + lmat(1075)
            mat(1114) = mat(1114) + lmat(1114)
            mat(1137) = mat(1137) + lmat(1137)
            mat(1141) = mat(1141) + lmat(1141)
            mat(1142) = lmat(1142)
            mat(1143) = lmat(1143)
            mat(1149) = mat(1149) + lmat(1149)
            mat(1150) = mat(1150) + lmat(1150)
            mat(1171) = mat(1171) + lmat(1171)
            mat(1187) = mat(1187) + lmat(1187)
            mat(1189) = mat(1189) + lmat(1189)
            mat(1196) = mat(1196) + lmat(1196)
            mat(1219) = mat(1219) + lmat(1219)
            mat(1220) = lmat(1220)
            mat(1223) = mat(1223) + lmat(1223)
            mat(1244) = mat(1244) + lmat(1244)
            mat(1252) = mat(1252) + lmat(1252)
            mat(1281) = mat(1281) + lmat(1281)
            mat(1289) = mat(1289) + lmat(1289)
            mat(1290) = mat(1290) + lmat(1290)
            mat(1291) = mat(1291) + lmat(1291)
            mat(1293) = mat(1293) + lmat(1293)
            mat(1302) = lmat(1302)
            mat(1305) = lmat(1305)
            mat(1376) = mat(1376) + lmat(1376)
            mat(1377) = mat(1377) + lmat(1377)
            mat(1383) = mat(1383) + lmat(1383)
            mat(1384) = mat(1384) + lmat(1384)
            mat(1389) = mat(1389) + lmat(1389)
            mat(1392) = mat(1392) + lmat(1392)
            mat(1422) = mat(1422) + lmat(1422)
            mat(1423) = mat(1423) + lmat(1423)
            mat(1431) = mat(1431) + lmat(1431)
            mat(1432) = mat(1432) + lmat(1432)
            mat(1434) = mat(1434) + lmat(1434)
            mat(1435) = mat(1435) + lmat(1435)
            mat(1454) = lmat(1454)
            mat(1455) = mat(1455) + lmat(1455)
            mat(1457) = mat(1457) + lmat(1457)
            mat(1465) = lmat(1465)
            mat(1471) = lmat(1471)
            mat(1472) = mat(1472) + lmat(1472)
            mat(1477) = lmat(1477)
            mat(1481) = mat(1481) + lmat(1481)
            mat(1484) = mat(1484) + lmat(1484)
            mat(1489) = mat(1489) + lmat(1489)
            mat(1490) = lmat(1490)
            mat(1501) = mat(1501) + lmat(1501)
            mat(1509) = mat(1509) + lmat(1509)
            mat(253) = 0._r8
            mat(325) = 0._r8
            mat(328) = 0._r8
            mat(330) = 0._r8
            mat(341) = 0._r8
            mat(349) = 0._r8
            mat(352) = 0._r8
            mat(353) = 0._r8
            mat(357) = 0._r8
            mat(360) = 0._r8
            mat(362) = 0._r8
            mat(363) = 0._r8
            mat(367) = 0._r8
            mat(389) = 0._r8
            mat(390) = 0._r8
            mat(394) = 0._r8
            mat(401) = 0._r8
            mat(417) = 0._r8
            mat(419) = 0._r8
            mat(420) = 0._r8
            mat(427) = 0._r8
            mat(428) = 0._r8
            mat(431) = 0._r8
            mat(444) = 0._r8
            mat(449) = 0._r8
            mat(450) = 0._r8
            mat(469) = 0._r8
            mat(472) = 0._r8
            mat(477) = 0._r8
            mat(480) = 0._r8
            mat(502) = 0._r8
            mat(507) = 0._r8
            mat(519) = 0._r8
            mat(520) = 0._r8
            mat(526) = 0._r8
            mat(527) = 0._r8
            mat(532) = 0._r8
            mat(541) = 0._r8
            mat(544) = 0._r8
            mat(545) = 0._r8
            mat(549) = 0._r8
            mat(550) = 0._r8
            mat(557) = 0._r8
            mat(569) = 0._r8
            mat(573) = 0._r8
            mat(575) = 0._r8
            mat(580) = 0._r8
            mat(582) = 0._r8
            mat(590) = 0._r8
            mat(591) = 0._r8
            mat(593) = 0._r8
            mat(596) = 0._r8
            mat(597) = 0._r8
            mat(600) = 0._r8
            mat(611) = 0._r8
            mat(633) = 0._r8
            mat(634) = 0._r8
            mat(644) = 0._r8
            mat(652) = 0._r8
            mat(658) = 0._r8
            mat(659) = 0._r8
            mat(665) = 0._r8
            mat(681) = 0._r8
            mat(684) = 0._r8
            mat(686) = 0._r8
            mat(687) = 0._r8
            mat(693) = 0._r8
            mat(695) = 0._r8
            mat(696) = 0._r8
            mat(698) = 0._r8
            mat(700) = 0._r8
            mat(703) = 0._r8
            mat(705) = 0._r8
            mat(708) = 0._r8
            mat(710) = 0._r8
            mat(711) = 0._r8
            mat(720) = 0._r8
            mat(722) = 0._r8
            mat(726) = 0._r8
            mat(729) = 0._r8
            mat(731) = 0._r8
            mat(732) = 0._r8
            mat(737) = 0._r8
            mat(741) = 0._r8
            mat(744) = 0._r8
            mat(747) = 0._r8
            mat(748) = 0._r8
            mat(749) = 0._r8
            mat(751) = 0._r8
            mat(752) = 0._r8
            mat(753) = 0._r8
            mat(758) = 0._r8
            mat(759) = 0._r8
            mat(766) = 0._r8
            mat(769) = 0._r8
            mat(771) = 0._r8
            mat(772) = 0._r8
            mat(791) = 0._r8
            mat(794) = 0._r8
            mat(797) = 0._r8
            mat(798) = 0._r8
            mat(799) = 0._r8
            mat(800) = 0._r8
            mat(811) = 0._r8
            mat(818) = 0._r8
            mat(825) = 0._r8
            mat(828) = 0._r8
            mat(831) = 0._r8
            mat(832) = 0._r8
            mat(834) = 0._r8
            mat(841) = 0._r8
            mat(842) = 0._r8
            mat(845) = 0._r8
            mat(847) = 0._r8
            mat(848) = 0._r8
            mat(874) = 0._r8
            mat(878) = 0._r8
            mat(881) = 0._r8
            mat(882) = 0._r8
            mat(883) = 0._r8
            mat(884) = 0._r8
            mat(900) = 0._r8
            mat(902) = 0._r8
            mat(907) = 0._r8
            mat(909) = 0._r8
            mat(911) = 0._r8
            mat(913) = 0._r8
            mat(914) = 0._r8
            mat(915) = 0._r8
            mat(916) = 0._r8
            mat(926) = 0._r8
            mat(928) = 0._r8
            mat(934) = 0._r8
            mat(941) = 0._r8
            mat(944) = 0._r8
            mat(955) = 0._r8
            mat(956) = 0._r8
            mat(972) = 0._r8
            mat(976) = 0._r8
            mat(978) = 0._r8
            mat(980) = 0._r8
            mat(981) = 0._r8
            mat(991) = 0._r8
            mat(993) = 0._r8
            mat(994) = 0._r8
            mat(996) = 0._r8
            mat(1000) = 0._r8
            mat(1001) = 0._r8
            mat(1004) = 0._r8
            mat(1005) = 0._r8
            mat(1006) = 0._r8
            mat(1009) = 0._r8
            mat(1026) = 0._r8
            mat(1027) = 0._r8
            mat(1042) = 0._r8
            mat(1043) = 0._r8
            mat(1047) = 0._r8
            mat(1052) = 0._r8
            mat(1053) = 0._r8
            mat(1054) = 0._r8
            mat(1066) = 0._r8
            mat(1072) = 0._r8
            mat(1080) = 0._r8
            mat(1081) = 0._r8
            mat(1088) = 0._r8
            mat(1093) = 0._r8
            mat(1094) = 0._r8
            mat(1095) = 0._r8
            mat(1099) = 0._r8
            mat(1111) = 0._r8
            mat(1122) = 0._r8
            mat(1129) = 0._r8
            mat(1131) = 0._r8
            mat(1132) = 0._r8
            mat(1135) = 0._r8
            mat(1138) = 0._r8
            mat(1140) = 0._r8
            mat(1145) = 0._r8
            mat(1146) = 0._r8
            mat(1152) = 0._r8
            mat(1153) = 0._r8
            mat(1154) = 0._r8
            mat(1157) = 0._r8
            mat(1158) = 0._r8
            mat(1161) = 0._r8
            mat(1162) = 0._r8
            mat(1163) = 0._r8
            mat(1166) = 0._r8
            mat(1168) = 0._r8
            mat(1170) = 0._r8
            mat(1172) = 0._r8
            mat(1173) = 0._r8
            mat(1174) = 0._r8
            mat(1176) = 0._r8
            mat(1177) = 0._r8
            mat(1179) = 0._r8
            mat(1186) = 0._r8
            mat(1190) = 0._r8
            mat(1191) = 0._r8
            mat(1195) = 0._r8
            mat(1200) = 0._r8
            mat(1201) = 0._r8
            mat(1202) = 0._r8
            mat(1203) = 0._r8
            mat(1245) = 0._r8
            mat(1250) = 0._r8
            mat(1256) = 0._r8
            mat(1257) = 0._r8
            mat(1266) = 0._r8
            mat(1267) = 0._r8
            mat(1271) = 0._r8
            mat(1272) = 0._r8
            mat(1273) = 0._r8
            mat(1277) = 0._r8
            mat(1278) = 0._r8
            mat(1279) = 0._r8
            mat(1282) = 0._r8
            mat(1286) = 0._r8
            mat(1287) = 0._r8
            mat(1294) = 0._r8
            mat(1295) = 0._r8
            mat(1331) = 0._r8
            mat(1346) = 0._r8
            mat(1359) = 0._r8
            mat(1380) = 0._r8
            mat(1410) = 0._r8
            mat(1419) = 0._r8
            mat(1420) = 0._r8
            mat(1421) = 0._r8
            mat(1424) = 0._r8
            mat(1425) = 0._r8
            mat(1426) = 0._r8
            mat(1428) = 0._r8
            mat(1429) = 0._r8
            mat(1430) = 0._r8
            mat(1436) = 0._r8
            mat(1440) = 0._r8
            mat(1441) = 0._r8
            mat(1442) = 0._r8
            mat(1443) = 0._r8
            mat(1444) = 0._r8
            mat(1445) = 0._r8
            mat(1446) = 0._r8
            mat(1447) = 0._r8
            mat(1448) = 0._r8
            mat(1449) = 0._r8
            mat(1450) = 0._r8
            mat(1451) = 0._r8
            mat(1452) = 0._r8
            mat(1453) = 0._r8
            mat(1459) = 0._r8
            mat(1464) = 0._r8
            mat(1466) = 0._r8
            mat(1467) = 0._r8
            mat(1468) = 0._r8
            mat(1469) = 0._r8
            mat(1470) = 0._r8
            mat(1473) = 0._r8
            mat(1474) = 0._r8
            mat(1475) = 0._r8
            mat(1476) = 0._r8
            mat(1478) = 0._r8
            mat(1479) = 0._r8
            mat(1480) = 0._r8
            mat(1482) = 0._r8
            mat(1483) = 0._r8
            mat(1485) = 0._r8
            mat(1487) = 0._r8
            mat(1493) = 0._r8
            mat(1494) = 0._r8
            mat(1496) = 0._r8
            mat(1497) = 0._r8
            mat(1498) = 0._r8
            mat(1502) = 0._r8
            mat(1503) = 0._r8
            mat(1504) = 0._r8
            mat(1) = mat( 1) - dti
            mat(2) = mat( 2) - dti
            mat(3) = mat( 3) - dti
            mat(4) = mat( 4) - dti
            mat(5) = mat( 5) - dti
            mat(6) = mat( 6) - dti
            mat(7) = mat( 7) - dti
            mat(8) = mat( 8) - dti
            mat(9) = mat( 9) - dti
            mat(10) = mat( 10) - dti
            mat(11) = mat( 11) - dti
            mat(12) = mat( 12) - dti
            mat(13) = mat( 13) - dti
            mat(14) = mat( 14) - dti
            mat(15) = mat( 15) - dti
            mat(16) = mat( 16) - dti
            mat(17) = mat( 17) - dti
            mat(20) = mat( 20) - dti
            mat(23) = mat( 23) - dti
            mat(26) = mat( 26) - dti
            mat(29) = mat( 29) - dti
            mat(33) = mat( 33) - dti
            mat(38) = mat( 38) - dti
            mat(41) = mat( 41) - dti
            mat(44) = mat( 44) - dti
            mat(47) = mat( 47) - dti
            mat(50) = mat( 50) - dti
            mat(53) = mat( 53) - dti
            mat(55) = mat( 55) - dti
            mat(57) = mat( 57) - dti
            mat(61) = mat( 61) - dti
            mat(65) = mat( 65) - dti
            mat(69) = mat( 69) - dti
            mat(72) = mat( 72) - dti
            mat(75) = mat( 75) - dti
            mat(80) = mat( 80) - dti
            mat(84) = mat( 84) - dti
            mat(90) = mat( 90) - dti
            mat(96) = mat( 96) - dti
            mat(102) = mat( 102) - dti
            mat(108) = mat( 108) - dti
            mat(115) = mat( 115) - dti
            mat(120) = mat( 120) - dti
            mat(125) = mat( 125) - dti
            mat(130) = mat( 130) - dti
            mat(134) = mat( 134) - dti
            mat(139) = mat( 139) - dti
            mat(142) = mat( 142) - dti
            mat(150) = mat( 150) - dti
            mat(154) = mat( 154) - dti
            mat(160) = mat( 160) - dti
            mat(166) = mat( 166) - dti
            mat(172) = mat( 172) - dti
            mat(178) = mat( 178) - dti
            mat(184) = mat( 184) - dti
            mat(189) = mat( 189) - dti
            mat(194) = mat( 194) - dti
            mat(201) = mat( 201) - dti
            mat(208) = mat( 208) - dti
            mat(215) = mat( 215) - dti
            mat(222) = mat( 222) - dti
            mat(227) = mat( 227) - dti
            mat(233) = mat( 233) - dti
            mat(241) = mat( 241) - dti
            mat(246) = mat( 246) - dti
            mat(254) = mat( 254) - dti
            mat(260) = mat( 260) - dti
            mat(268) = mat( 268) - dti
            mat(272) = mat( 272) - dti
            mat(280) = mat( 280) - dti
            mat(288) = mat( 288) - dti
            mat(296) = mat( 296) - dti
            mat(303) = mat( 303) - dti
            mat(312) = mat( 312) - dti
            mat(319) = mat( 319) - dti
            mat(324) = mat( 324) - dti
            mat(335) = mat( 335) - dti
            mat(344) = mat( 344) - dti
            mat(358) = mat( 358) - dti
            mat(369) = mat( 369) - dti
            mat(375) = mat( 375) - dti
            mat(379) = mat( 379) - dti
            mat(388) = mat( 388) - dti
            mat(397) = mat( 397) - dti
            mat(405) = mat( 405) - dti
            mat(414) = mat( 414) - dti
            mat(425) = mat( 425) - dti
            mat(433) = mat( 433) - dti
            mat(442) = mat( 442) - dti
            mat(452) = mat( 452) - dti
            mat(462) = mat( 462) - dti
            mat(476) = mat( 476) - dti
            mat(486) = mat( 486) - dti
            mat(494) = mat( 494) - dti
            mat(510) = mat( 510) - dti
            mat(517) = mat( 517) - dti
            mat(530) = mat( 530) - dti
            mat(540) = mat( 540) - dti
            mat(552) = mat( 552) - dti
            mat(560) = mat( 560) - dti
            mat(572) = mat( 572) - dti
            mat(587) = mat( 587) - dti
            mat(602) = mat( 602) - dti
            mat(607) = mat( 607) - dti
            mat(616) = mat( 616) - dti
            mat(625) = mat( 625) - dti
            mat(637) = mat( 637) - dti
            mat(650) = mat( 650) - dti
            mat(662) = mat( 662) - dti
            mat(677) = mat( 677) - dti
            mat(697) = mat( 697) - dti
            mat(721) = mat( 721) - dti
            mat(740) = mat( 740) - dti
            mat(760) = mat( 760) - dti
            mat(789) = mat( 789) - dti
            mat(805) = mat( 805) - dti
            mat(824) = mat( 824) - dti
            mat(839) = mat( 839) - dti
            mat(872) = mat( 872) - dti
            mat(903) = mat( 903) - dti
            mat(943) = mat( 943) - dti
            mat(970) = mat( 970) - dti
            mat(1016) = mat(1016) - dti
            mat(1044) = mat(1044) - dti
            mat(1114) = mat(1114) - dti
            mat(1150) = mat(1150) - dti
            mat(1171) = mat(1171) - dti
            mat(1196) = mat(1196) - dti
            mat(1252) = mat(1252) - dti
            mat(1290) = mat(1290) - dti
            mat(1389) = mat(1389) - dti
            mat(1434) = mat(1434) - dti
            mat(1457) = mat(1457) - dti
            mat(1484) = mat(1484) - dti
            mat(1509) = mat(1509) - dti
        END SUBROUTINE nlnmat_finit

        SUBROUTINE nlnmat(mat, y, rxt, lmat, dti)
            USE chem_mods, ONLY: nzcnt
            USE chem_mods, ONLY: gas_pcnst
            USE chem_mods, ONLY: rxntot
            IMPLICIT NONE
            !----------------------------------------------
            ! ... dummy arguments
            !----------------------------------------------
            REAL(KIND=r8), intent(in) :: dti
            REAL(KIND=r8), intent(in) :: lmat(nzcnt)
            REAL(KIND=r8), intent(in) :: y(gas_pcnst)
            REAL(KIND=r8), intent(in) :: rxt(rxntot)
            REAL(KIND=r8), intent(inout) :: mat(nzcnt)
            CALL nlnmat01(mat, y, rxt)
            CALL nlnmat02(mat, y, rxt)
            CALL nlnmat03(mat, y, rxt)
            CALL nlnmat04(mat, y, rxt)
            CALL nlnmat05(mat, y, rxt)
            CALL nlnmat06(mat, y, rxt)
            CALL nlnmat07(mat, y, rxt)
            CALL nlnmat_finit(mat, lmat, dti)
        END SUBROUTINE nlnmat
    END MODULE mo_nln_matrix
